我有以下字典
Dict = {'Manu':{u'ID0020879.07': [{'ID': u'ID0020879.07', 'log': u'log-123-56', 'owner': [Manu], 'item': u'WRAITH', 'main_id': 5013L, 'status': u'noticed', 'serial': u'89980'}]}}
如何从此词典中访问序列?
我试过Dict['Manu']['serial']
,但它没有按预期工作..
伙计们有什么想法?
答案 0 :(得分:2)
你的词典是非常嵌套的。就像这样。
In [1]: Dict['Manu']['ID0020879.07'][0]['serial']
Out[1]: u'89980'
答案 1 :(得分:1)
这是重组后的字典。
{
'Manu': {
u'ID0020879.07': [{
'ID': u'ID0020879.07',
'log': u'log-123-56',
'owner': [Manu],
'item': u'WRAITH',
'main_id': 5013L,
'status': u'noticed',
'serial': u'89980'
}]
}
}
现在,您可以更清楚地看到序列密钥的位置(不在Manu下)......
而不是
Dict['Manu']['ID0020879.07'][0]['serial']
我建议您修复该数据源,使ID0020879.07
成为数据的关键字(因为它在列表中该对象的ID键中重复)。
也许修复如此,Manu键映射到“帐户”列表,每个帐户都有ID和其他字段
{
'Manu': [{
'ID': u'ID0020879.07',
'log': u'log-123-56',
'owner': [Manu],
'item': u 'WRAITH',
'main_id': 5013L,
'status': u'noticed',
'serial': u'89980'
}]
}
然后你可以做
Dict['Manu'][0]['serial']
或循环列表以获取所有序列密钥
for item in Dict['Manu']:
print(item['serial'])