这件事一定很简单,但我想不通。我的部分脚本是这样做的:
myDict = {}
for dev in self.dmd.Devices():
device = dev.id
collector = dev.getPerformanceServerName()
instances = [ inst.id for inst in dev.instances() ]
从那里,我想创建一个这样的字典:
{
"EC2-test-eip-alloc": {
"mon511.backbc.local": [
"i-1828ca57",
"i-372d3978"
]
}
....
....
}
式中,EC2 test eip alloc=>;device
,mon511。backbc.本地=>;collector
和[“i-1828ca57”,“i-372d3978”]=>;instances
。我试过:
inDict = reduce(lambda d, k: d.setdefault(k, {}), device, myDict)
inDict.setdefault(collector, instances)
但是得到了一个非常奇怪的结果,device
的每个字符都被当作键,如下所示:
{"E":{"C":{"2":{"-":{...}}}}}
。你知道我怎样才能把这件事做好吗?干杯!!你知道吗
要重申我的上述评论,请更改
至
因此reduce通过
('device', )
(产生'device', StopIteration
)而不是“device”(产生'd', 'e', 'v', 'i', 'c', 'e', StopIteration
)。你知道吗相关问题 更多 >
编程相关推荐