Python 将两个json字符串合并而不使用;或';
我有两个JSON字符串 字符串1:Python 将两个json字符串合并而不使用;或';,python,json,python-3.x,Python,Json,Python 3.x,我有两个JSON字符串 字符串1: {"step":"example step", "data":"example data", "result":"example result"} 字符串2: {"attachments":[ { "data":"gsddfgdsfg...(base64) ", "filename":"example1.txt", "contentType":"plain/text" } ] } 我需要将两者结合起来: 预期对象: { "step":"example
{"step":"example step", "data":"example data", "result":"example result"}
字符串2:
{"attachments":[ { "data":"gsddfgdsfg...(base64) ", "filename":"example1.txt", "contentType":"plain/text" } ] }
我需要将两者结合起来:
预期对象:
{
"step":"example step",
"data":"example data",
"result":"example result",
"attachments":[
{
"data":"gsddfgdsfg...(base64) ",
"filename":"example1.txt",
"contentType":"plain/text"
},
{
"data":"gsddfgdsfg...(base64) ",
"filename":"example2.txt",
"contentType":"plain/text"
}
]
}
在每一次尝试中,第二个字符串都会在数组中出现“或”,这将不起作用。您不应该尝试将它们作为字符串进行操作–这将是脆弱的,并且非常特定于字符串。相反,请将字符串解析为字典,执行任何您想要的操作,然后将它们转储回JSON字符串:
import json
s1 = '{"step":"example step", "data":"example data", "result":"example result"}'
s2 = '{"attachments":[ { "data":"gsddfgdsfg...(base64) ", "filename":"example1.txt", "contentType":"plain/text" } ] }'
d1 = json.loads(s1)
d2 = json.loads(s2)
d1.update(d2)
json.dumps(d1)
这将为您提供一个干净的json字符串:
'{"step": "example step", "data": "example data", "result": "example result", "attachments": [{"data": "gsddfgdsfg...(base64) ", "filename": "example1.txt", "contentType": "plain/text"}]}'
如果您想要对象而不是字符串,d1
现在是:
{'step': 'example step',
'data': 'example data',
'result': 'example result',
'attachments': [{'data': 'gsddfgdsfg...(base64) ',
'filename': 'example1.txt',
'contentType': 'plain/text'}]}
您实际尝试了什么?我已经将其分为几个“阶段”,因此我有一个方法来构建附件数组,然后我尝试合并字符串1、静态文本(,“附件”):[、数组元素、右括号(]}如果没有您自己尝试过的任何有形代码,就不可能实际调试您实际遇到的错误。谢谢@MarkMeyer,我正在相应地更新我的代码,并将在您的解决方案正常工作时对其进行测试,但我仍然对s2有问题,因为它仍在转义。阵列正在以专用方式构建方法。s2的其余部分被添加到另一个方法中。我需要对此进行更多的研究