Ok, the issue is that you can't have your script in the same folder as meraki.py.
I took a look at the code and the reason it failed the first time when you put it in the same folder as meraki.py is that the code assumes the remainder of the modules are under the meraki folder.
By running your script on the same folder as meraki.py file then that means you are in the meraki folder and therefore the path of the script starts there. So you would have to change the path in order for it to work, because it references the folder it is in. Or you can just run it outside the folder. (I would recommend this so you don't have to change anything in the modules). That is why it failed and you get the error "No module named 'meraki.decorators'".
Apologies, oversight on my part.
Another thing I noticed when it did work for you, you are importing the file "meraki.py". What you really want to import is the Class object "Meraki" it is case sensitive.
So you have to import it as:
from meraki.meraki import Meraki
the first meraki tells the folder, the second tells the File name, the import functions states that it wants to import something from the file. And the "Meraki" states what you want to import.
Try running this in your testsdk.py:
from meraki import meraki
x_cisco_meraki_api_key = 'x_cisco_meraki_api_key' ##CHANGE this to your Meraki API key
client = Meraki(x_cisco_meraki_api_key)
organization_id = 'organizationId' ##CHANGE this to an OrganizationID you are using to test
admins_controller = client.admins
result = admins_controller.get_organization_admins(organization_id)
print (result)
##You will see the admins of the Organization printed in a Dictionary format.
It will fail because the import is not correct. In order to utilize it in your "testsdk.py" script you will have to change the following line
client = Meraki(x_cisco_meraki_api_key)
to
client = meraki.Meraki(x_cisco_meraki_api_key)
since you need to call the Class Object in that file in order to create this variable. And anytime you utilize it you will have to call it with "meraki." leading that call. As shown above.
it is easier if you just use the following to import:
from meraki.meraki import Meraki
so you don't have to call "meraki.Meraki" every time you call the Meraki object. It is a matter of preference.
Try the following with the corrected import:
from meraki.meraki import Meraki
x_cisco_meraki_api_key = 'x_cisco_meraki_api_key' ##CHANGE this to your Meraki API key
client = Meraki(x_cisco_meraki_api_key)
organization_id = 'organizationId' ##CHANGE this to an OrganizationID you are using to test
admins_controller = client.admins
result = admins_controller.get_organization_admins(organization_id)
print (result)
##You will see the admins of the Organization in a Dictionary format.
You will see the admins of the organization.
It'll be easier getting the "organizationId" from postman.
Let me know if you have any other questions, sorry for the error earlier. I didnt realize the imports assumed it was being called from a different folder.