Python - Is it possible to have a dictionary in a list? -


i'y new writing scripts in python know can have list inside dictionary can have dictionary inside list?

my example i'm trying execute script on list of linux servers. have 1 dictionary such (the details blocked obvious reasons):

list1 = { 'ip_' : '@ipaddr', 'username_' : '@user', 'password_' : '@passwd', 'dirlocation' : '@dir' } 

and then...

    ssh.connect(list1['ip_'], port=22, username=list1['username_'], password=list1['password_']) 

but possible have like:

serverlist = {  list1 = { 'ip_' : '@ipaddr', 'username_' : '@user', 'password_' : '@passwd', 'dirlocation' : '@dir' }  list2 = { 'ip_' : '@ipaddr', 'username_' : '@user', 'password_' : '@passwd', 'dirlocation' : '@dir' } } 

and create loop such?

for listobj in serverlist:     ssh.connect(serverlist.listobj['ip_'], port=22, username=listobj['username_'], password=listobj['password_']) 

this see silly question many help!

it's possible. can either have dict of dict:

>>> serverdict = { ... ... 'list1': { ... 'ip_' : '@ipaddr1', ... 'username_' : '@user', ... 'password_' : '@passwd', ... 'dirlocation' : '@dir' ... }, ... ... 'list2': { ... 'ip_' : '@ipaddr2', ... 'username_' : '@user', ... 'password_' : '@passwd', ... 'dirlocation' : '@dir' ... } ... } 

or list:

>>> serverlist = [ ... ...  { ... 'ip_' : '@ipaddr1', ... 'username_' : '@user', ... 'password_' : '@passwd', ... 'dirlocation' : '@dir' ... }, ... ...  { ... 'ip_' : '@ipaddr2', ... 'username_' : '@user', ... 'password_' : '@passwd', ... 'dirlocation' : '@dir' ... } ... ] 

and can iterate through dict

>>> k,v in serverdict.items(): ...  print k, v['ip_'] ... list1 @ipaddr1 list2 @ipaddr2 >>> k in serverdict.keys(): ...   print serverdict[k]['ip_'] ... @ipaddr1 @ipaddr2 >>> v in serverdict.values(): ...   print v['ip_'] ... @ipaddr1 @ipaddr2 

or list:

>>> in serverlist: ...   print i['ip_'] ... @ipaddr1 @ipaddr2 

Comments