向Python词典添加术语

2024-04-25 11:41:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下列有效词典。我试图在“扩展模块”组下添加另一组术语。你知道吗

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'
                    }
                }
            }
        }
    }
}

我想在“扩展模块”下添加以下内容,但不删除“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'}

Tags: 模块inmodulesmodel词典router术语slot
3条回答

访问方式如下:

lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'][2] = {}

您不需要行-lan_router['HOSTNAME1']['chassis'][0]['expansion_modules'] = { 2: {} },它正在替换expansion_modules中的字典,只需删除它并执行rest。你知道吗

代码-

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'}

阿南德的回答是正确的,因为它回答了你的问题。你知道吗

我要补充的是,通常以[0,1,…]作为键的字典应该只是列表。而不是:

'expansion_modules':{
    1:{
        'pic_slot': 1,
        'expan_model': 'EX4550VCP'
    },
    2:{ ... }
}

也许你应该:

'expansion_modules':[
    {
        'pic_slot': 1,
        'expan_model': 'EX4550VCP'
    },
    { ... }
]

相关问题 更多 >