我有以下有效词典。我正在尝试在“expansion_modules”组下添加另一组术语。
lan_router = {
'HOSTNAME1':{
'system_type': 'MDF',
'chassis':{
0:{
'model_num': 'EX4550',
'vc_role': 'MASTER',
'expansion_modules':{
1:{
'pic_slot': 1,
'expan_model': 'EX4550VCP'
}
},
'built-in_modules':{
0:{
'pic_slot': 2,
'built-in_model': 'EX4550BI'
}
}
}
}
}
}
我想在“expansion_modules”下添加以下内容而不删除“1”...
2:{'pic_slot': 2, 'expan_model': 'EX4550SFP'}
以下代码添加了我想要的内容,但删除了现有的术语......
print lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'][1]['expan_model']
lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'] = { 2: {} }
lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'][2] = {'pic_slot' : 1, 'expan_model' : 'EX45504XSFP'}
答案 0 :(得分:4)
你不需要行 - lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'] = { 2: {} }
,它正在替换expansion_modules
中的字典,只需删除它并执行休息。
代码 -
print lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'][1]['expan_model']
lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'][2] = {'pic_slot' : 1, 'expan_model' : 'EX45504XSFP'}
答案 1 :(得分:0)
像这样访问它:
lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'][2] = {}
答案 2 :(得分:0)
Anand的回答是正确的,因为它回答了你的问题。
我想补充说,经常使用[0,1,...]作为键的字典应该只是列表。而不是:
'expansion_modules':{
1:{
'pic_slot': 1,
'expan_model': 'EX4550VCP'
},
2:{ ... }
}
也许你应该:
'expansion_modules':[
{
'pic_slot': 1,
'expan_model': 'EX4550VCP'
},
{ ... }
]