如何结合两个JSON文件?

时间:2017-06-15 08:33:10

标签: python json join

我有两个json对象,我想弄清楚如何在python中合并它们

y={"success":"true"}
x={"0":"740","1":"747","2":"883","3":"750","4":"769"}

我需要以下列方式获得最终结果

{"success":"true",
  "data":{
       "0":"740",
       "1":"747",
       "2":"883", 
       "3":"750", 
       "4":"769"
         }
              }

我试图追加它,但它显示出一些错误。帮我解决python中的代码。

3 个答案:

答案 0 :(得分:2)

您的输入似乎是字符串而不是字典。你需要使用json.loads将它们转换为dicts:

import json

y = '{"success":"true"}'
x = '{"0":"740","1":"747","2":"883","3":"750","4":"769"}'

res = json.loads(y)
res['data'] = json.loads(x)

print(res)

如果您需要再次输出字符串,请使用json.dumps

res_str = json.dumps(res)

如果您坚持要对输出进行排序:

res_str = json.dumps(res, sort_keys=True)

答案 1 :(得分:1)

您可以执行y["data"] = x

y={"success":"true"}
x={"0":"740","1":"747","2":"883","3":"750","4":"769"}

y["data"] = x

答案 2 :(得分:0)

我认为它们是字符串而不是python dicts。所以这就是你能做的事情

y='{"success":"true"}'
x='{"0":"740","1":"747","2":"883","3":"750","4":"769"}'

import json
dict1 = json.loads(x)
dict2 = json.loads(y)

dict2['data'] = dict1

result = json.dumps(dict2)
print result

上面的代码为您提供了这个

{"data": {"1": "747", "0": "740", "3": "750", "2": "883", "4": "769"}, "success": "true"}

如果要保留json字符串中的结构,可以查看this link。这将使解码变得更复杂。