合并多个json合并重复项并在python中为特定键添加值

2024-04-25 18:19:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我到处找了一个方法来做这件事,但我只能找到零碎的东西,一直被卡住。 我想添加两组json,保留所有属性,但如果存在重复的owner值,则添加total值。在

json1 = [{"total":101,"owner":"User1","type":8,"team":"Team1"},
{"total":44,"owner":"User2","type":8,"team":"Team1"},
{"total":22,"owner":"User3","type":8,"team":"Team2"}]

json2 = [{"total":12,"owner":"User1","type":8,"team":"Team1"},
{"total":33,"owner":"User3","type":8,"team":"Team2"},
{"total":18,"owner":"User4","type":8,"team":"Team1"}]

我想让输出看起来像这样

^{pr2}$

或者,如果我有一个单独的json集,并且希望找到重复的owner并合并{},那么我如何到达最后的finaljson。在

mergedjson = json1.extend(json2)变成{}

谢谢!在


Tags: 方法json属性typeteamtotalowneruser1
1条回答
网友
1楼 · 发布于 2024-04-25 18:19:15

试试这个,虽然这不是最好的解决办法。在

def merge_json(json1, json2):
    data = {}
    for val in json1+json2:
        key = val["owner"]
        if key in data:
            data[key]['total'] = data[key]['total']+val['total']
        else:
            data[key] = val
    return list(data.values())

DEMO

相关问题 更多 >