我的代码从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",
"vlan_info": "value",
"network_subnet": "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)
答案 0 :(得分:1)
实际上,您不需要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
标记此功能没有错误处理。它将使用相同的键覆盖现有条目。