我是用Python编写脚本的新手,但我知道你可以在字典里面有一个列表,但是你可以在列表中有一个字典吗?
我的例子是我试图在linux服务器列表上执行脚本。我这样做了一个字典(由于显而易见的原因,细节被阻止):
list1 = {
'IP_' : '@IPADDR',
'Username_' : '@USER',
'Password_' : '@PASSWD',
'dirlocation' : '@DIR'
}
然后......
ssh.connect(list1['IP_'], port=22, username=list1['Username_'], password=list1['Password_'])
但是可能有类似的东西:
ServerList = {
list1 = {
'IP_' : '@IPADDR',
'Username_' : '@USER',
'Password_' : '@PASSWD',
'dirlocation' : '@DIR'
}
list2 = {
'IP_' : '@IPADDR',
'Username_' : '@USER',
'Password_' : '@PASSWD',
'dirlocation' : '@DIR'
}
}
然后创建一个循环?
for listobj in ServerList:
ssh.connect(ServerList.listobj['IP_'], port=22, username=listobj['Username_'], password=listobj['Password_'])
这可能是一些人认为是一个愚蠢的问题,但非常感谢你的帮助!
答案 0 :(得分:2)
是的,可以有一个dict项目列表:
>>> foo = [ {'a':1,'b':2} , {'c':3,'d':4} ]
>>> foo[1]
{'c': 3, 'd': 4}
>>>
答案 1 :(得分:2)
这是可能的。你可以有dict的词典:
>>> ServerDict = {
...
... 'list1': {
... 'IP_' : '@IPADDR1',
... 'Username_' : '@USER',
... 'Password_' : '@PASSWD',
... 'dirlocation' : '@DIR'
... },
...
... 'list2': {
... 'IP_' : '@IPADDR2',
... 'Username_' : '@USER',
... 'Password_' : '@PASSWD',
... 'dirlocation' : '@DIR'
... }
... }
或列表:
>>> ServerList = [
...
... {
... 'IP_' : '@IPADDR1',
... 'Username_' : '@USER',
... 'Password_' : '@PASSWD',
... 'dirlocation' : '@DIR'
... },
...
... {
... 'IP_' : '@IPADDR2',
... 'Username_' : '@USER',
... 'Password_' : '@PASSWD',
... 'dirlocation' : '@DIR'
... }
... ]
你可以遍历dict
>>> for k,v in ServerDict.items():
... print k, v['IP_']
...
list1 @IPADDR1
list2 @IPADDR2
>>> for k in ServerDict.keys():
... print ServerDict[k]['IP_']
...
@IPADDR1
@IPADDR2
>>> for v in ServerDict.values():
... print v['IP_']
...
@IPADDR1
@IPADDR2
或列表:
>>> for i in ServerList:
... print i['IP_']
...
@IPADDR1
@IPADDR2