如何合并两个json,并且只更新相等的dicts?

假设我有以下要合并的JSON -公共数据键、值,如果两者都包含相同的id,则更新URL,但如果存在不同的id,则也将其添加到数组JSON中

def mergeDicts(*data):
    merged = dict()
    for dicts in data:
        for d in dicts:
            for k,v in d.items():
                if not isinstance(v,list): v = [v]
                merged[k] = list(set(merged.get(k,[]) + v))
    return merged

虚拟数据

json1 = [{'id': 'demo1', 'url': ['data','data']}, {'id': 'demo2', 'url': ['data','data', 2]}]
json2 = [{'id': 'demo1', 'url': ['data','data1', 2]}]

期望输出

[
    {'id': 'demo1', 'url': ['data','data1',2]},
    {'id': 'demo2', 'url': ['data', 2]}
]

电流输出

{'id': ['demo1', 'demo2'], 'url': ['data', 2, 'data1']}

转载请注明出处:http://www.lsql.net/article/20230523/2119228.html