将值添加到Python中的现有字典键

时间:2019-12-19 20:31:21

标签: python json python-3.x

我需要将字典值附加到已经存在的JSON文件中。我该怎么做?

我的details.json文件

{"name": "someName"}

我的python脚本生成的字典

list1 = {"name": "someOthername"}

with open("details.json") as r:
    data = json.load(r)
    desirableDict = data.append(list1) # It has to be something like this
    print(desirableDict)

理想的输出:{“名称”:[“ someName”,“ someOthername”]}

2 个答案:

答案 0 :(得分:1)

似乎您需要深度合并结构。我建议您使用这个很棒的库https://pypi.org/project/deepmerge/

有很多您想实现的例子。

from deepmerge import always_merger

base = {"foo": ["bar"]}
next = {"foo": ["baz"]}

expected_result = {'foo': ['bar', 'baz']}
result = always_merger.merge(base, next)

assert expected_result == result

答案 1 :(得分:1)

您可以检查for循环中的所有键,并将json文件和list1的值放在这样的列表中:

import json

list1 = {"name": "someOthername"}

with open("details.json") as file:

    data = json.load(file)
    desirableDict = data.copy()

    for key in data:
        if key in list1:

            if type(data[key]) is list:
                data[key].append(list1[key])
            else:
                desirableDict[key] = [data[key],list1[key]]

print(desirableDict)