【问题标题】:How to add values dynamically into a python dict and then to a JSON file?如何将值动态添加到 python dict 中,然后添加到 JSON 文件中?
【发布时间】:2020-08-11 07:40:47
【问题描述】:

我的代码从 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)

【问题讨论】:

  • 你的问题到底是什么?

标签: python json python-3.x dictionary


【解决方案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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-23
    • 2018-05-18
    • 2023-01-26
    • 1970-01-01
    • 2016-04-08
    • 2013-01-26
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多