使用值列表合并Python中的两个JSON字符串

2024-05-19 06:48:09 发布

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

我希望在Python中将两个JSON字符串合并为一个。string1与string2具有相同的键,但string2在列表中有多个值,如下例所示:

字符串1:

{'Target': 'DEV1', 'Supplier': '0', 'Message': 'A', 'Name': 'Supp1'}

字符串2:

^{pr2}$

希望合并输出字符串3:

{'Target': ['DEV1', 'DEV2', 'DEV3'], 'Supplier': ['0', '1', '2'], 'Message': ['A', 'B', 'C'], 'Name': ['Supp1', 'Supp2', 'Supp3']}

我不太熟悉JSON,但我现在的位置是:

import json

str1 = json.loads(string1)
str2 = json.loads(string2)

string3 = {key, val for (key, val) in (str1.items() and str2.items())

我在Stackoverflow中找到的用于合并JSON字符串的最后一行,但是我很难为每个值追加列表。在

任何帮助都将不胜感激。在


Tags: 字符串namejsonmessagetarget列表dev1supplier
2条回答

现在是一个可行的答案

def toList(x):
    if isinstance(x, list):
        return x
    else:
        return [x,]  

s3 = {k:toList(s1[k])+ toList(s2[k]) for k in s1.keys()}

假设s1和s2中的键相同

这是实现你想要的东西的简单方法。在

merged_str = { key: [str1[key]]+str2[key] for key in str2 }

顺便说一句,它们被称为字典,而不是JSON字符串。在

相关问题 更多 >

    热门问题