组合两个不带“or”的json字符串

2024-10-03 06:28:25 发布

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

我有两个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",
   "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"
      }
   ]
}

在每一次尝试中,第二个字符串都是围绕数组的'或',这将不起作用。你知道吗


Tags: 字符串texttxtjsondataexamplestepresult
1条回答
网友
1楼 · 发布于 2024-10-03 06:28:25

你不应该试着把它们当作字符串来操作——这将是脆弱的,并且非常特定于字符串。相反,将字符串解析为字典,执行任何操作,然后将它们转储回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'}]}

相关问题 更多 >