如何动态地将值添加到python dict中,然后再添加到JSON文件中?

问题描述

我的代码从API中提取特定值,因此我需要将这些值放入现有的JSON文件中

代码:

list = ['xxx','yyy','zzz','rrr','ttt']
    for element in list:
ipam_data = get_data(element)
        for k,v in ipam_data.items():
                if 'networks' in v:
                    for network_info in v['networks']:
                        id_site = network_info['site_id']
                        network_subnet = network_info['network']
                        vlan = network_info['vlan']
                        

我试图将数据放入具有相同键的嵌套dict中,这样在JSON文件中包含多个值:

{
            "id_site": "value","vlan_info": "value","network_subnet": "value",},{
             "id_site": "value",

我在编码add_data函数时遇到了一些挑战,因为我想通过循环将值添加到字典中。我有一个经典功能,可以为我要修改的经典字典增加值:

def add_data(your_dict,new_data):
 your_dict[new_data['mag_id']['ip_range']['vlan']] = new_data
    return your_dict

我正在尝试动态添加值,而不是将值用硬代码写入JSON,这就是我在努力的地方。欢迎任何帮助。

data = {}
new_entry={'mag_id':id_mag,'ip_range':network_info,'vlan':vlan}
add_data(data,new_entry)
with open('result.json','w') as fp:
 json.dump(add_data,fp)

解决方法

实际上,您不需要add_data()函数即可将数据添加到字典中。您可以分段添加元素:

data = {}
new_entry={'mag_id':id_mag,'ip_range':network_info,'vlan':vlan}
for key,value in new_entry.items():
    data[key]=value

如果您绝对希望将其作为函数:

def add_data(your_dict,new_data):
    for key,value in new_data.items():
        your_dict[key]=value
    return your_dict

标记此功能没有错误处理。它将使用相同的键覆盖现有条目。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...