【问题标题】:How to merge two JSONs如何合并两个 JSON
【发布时间】:2016-02-21 15:55:09
【问题描述】:

我有两个这样的字典:

array1=["1","2"]
array=[
       [{"a":"1"},{"b":"2"}],
       [{"c":"1"},{"d":"2"}]
     ]

我想将它们转换为 JSON,然后像这样合并它们:

json3=[
        "1": [{a:"1"},{b:"2"}],
        "2": [{c:"1"},{d:"2"}]        
  ]

我已通过json.dumps() 将它们转换为 JSON,但现在我不知道如何按照我想要的方式合并它们。

我的问题有点类似于this one,但结果不同。

我试过了:

json3 = {key: value for (key, value) in (json1.items() + json2.items())}

但我明白了:

'str' object has no attribute 'items'

我尝试了其他一些方法,但都没有达到我想要的效果

dict_of_dicts = {i:d for i, d in zip(idJson, imgJson)} # Also didn't work

【问题讨论】:

  • 你需要json.loads
  • @PadraicCunningham 和 json.dumps
  • 为什么哦,当它们是字符串时,你为什么要发布看起来像 python 列表的东西?想编辑吗?
  • @BhargavRao,除非他们再次想要一个字符串;)
  • @AlexJolig,你不能有你想要的格式,你可以有一个字典或一个列表,而不是两者的混合。你在用 json 做什么?

标签: python json list dictionary


【解决方案1】:

您可以为此使用json 库。

json.loads 将 json 字符串转换为 dict。 json.dumps 从字典中恢复你的 json。

json1='["1","2"]'
json2='[[{"a":"1"},{"b":"2"}],[{"c":"1"},{"d":"2"}]]'
import json
j1 = json.loads(json1)
j2 = json.loads(json2)
j3 = dict(zip(j1, j2))
json3 =  json.dumps(j3)

输出将是

>>> json3
'{"1": [{"a": "1"}, {"b": "2"}], "2": [{"c": "1"}, {"d": "2"}]}'

【讨论】:

    猜你喜欢
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    相关资源
    最近更新 更多