python - 如何将值动态添加到 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']
我试图将数据放在具有相同键的嵌套字典中,JSON文件中的多个值如下:
{
"id_site": "value",
"vlan_info": "value",
"network_subnet": "value",
},
{
"id_site": "value",
"vlan_info": "value",
"network_subnet": "value",
},
我在编写 add_data 函数时遇到了一些挑战,因为我想通过循环将值添加到 dict 中。我有一个经典函数,可以为我要修改的经典字典添加值:
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
标记此函数中没有错误处理。它将使用相同的密钥覆盖现有条目。
推荐阅读
- vuejs2 - Vue.JS将对象传递给孩子以在插槽内使用
- java - Spring中@Scheduled方法中的Thread.sleep
- php - 如何使用 php 代码从数据库中获取数据并将类似的国家相关按钮移动到特定的表格列?
- java - 如何在线程迭代前后打印一些消息?
- python - sklearn:在 jupyter notebook 中导入 sklean 时出错
- angular - observable 的订阅者如何在 6 秒的时间间隔内接收发出的项目(在其订阅时间内的所有项目)?
- apache-spark - 如何处理独立火花集群中的共享文件权限?
- bash - 测试:bash 脚本中的参数过多
- reactjs - 如何在反应中构建基于查询的 URL
- facebook-login - 无法从 facebook 响应加载图像