首页 > 解决方案 > 将json的字典折叠成一个json

问题描述

我在这个问题上看到了很多几乎类似的问题,但真的无法解决这个问题。

我有如下 JSON 响应,我想将其折叠成 1 个 JSON 对象

>>> responses
[
{'result': [{'number': 'INC0010001'}]}, 
{'result': [{'number': 'INC0010002'}]}, 
{'result': [{'number': 'INC0010003'}]}, 
{'result': [{'number': 'INC0010004'}]}, 
{'result': [{'number': 'INC0010005'}]}]
{
  "result": [
    {
      "number": "INC0010001"
    },
    {
      "number": "INC0010002"
    },
    {
      "number": "INC0010003"
    },
    {
      "number": "INC0010004"
    },
    {
      "number": "INC0010005"
    }  ]
}

我已经尝试过了,但它会继续覆盖,因为它是基于密钥的。

result = {}
for d in responses:
    result.update(d)

编辑:我很少使用 JSON 格式。因此,与他们打交道非常具有挑战性。

最终输出需要使用双引号而不是单引号。例如,'result'应该是"result",与"number"和相同"INC00XXXXX"

还要注意,

[{'number': 'INC0010001'}]应该成为{"number": "INC0010001"}

注意括号没有被删除,单引号被双引号代替。

在某些情况下,INC可能还有实际的双引号,例如INC"fdas". 所以我想,它需要{"number": "INC\"fdas\""}

标签: pythonjsondictionary

解决方案


尝试:

output = {"result":[]}
for d in responses:
  output["result"] += d["result"]
print(output)

推荐阅读