首页 > 解决方案 > 如何将值动态添加到 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)

标签: pythonjsonpython-3.xdictionary

解决方案


您实际上不需要 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

标记此函数中没有错误处理。它将使用相同的密钥覆盖现有条目。


推荐阅读