使用python更新json对象中的json元素

时间:2019-01-22 13:47:19

标签: python json

这是我在python中的json对象

json1 = {
  "success":true,
  "message":"",
  "result":[{
    "MarketName":"USDT-BTC"
}]}

json2 = {
"success1":true1
}

我想在python中使用json2更新json1对象中的results元素

json1 = {
  "success":true,
  "message":"",
  "result":{
"success1":true1
}}

你能让我知道怎么做吗

4 个答案:

答案 0 :(得分:0)

简便的方法是将新字典重新分配到现有密钥中。

>>> json1 = { "success": True, "message":"", "result":[{ "MarketName":"USDT-BTC" }]}
>>> json2 = { "success1":True }
>>> json1['result'] = json2
>>> json1
{'success': True, 'message': '', 'result': {'success1': True}}

您可以使用dict["key"]访问键并分配新值dict["key"] = new_value

根据您要执行的操作,应该遍历数组(无论是否有)以更改此值或需要执行的任何操作。

答案 1 :(得分:0)

您可以使用更新功能:json1.update(json2)

答案 2 :(得分:0)

您可以使用json库对JSON数据进行序列化和反序列化。

In [1]: import json

In [2]: json1 = '{ "success": true, "message":"", "result":[{ "MarketName":"USDT-BTC" }]}'

In [3]: json2 = '{ "success1":true }'

In [4]: dict1 = json.loads(json1) # Deserialize a str or unicode instance containing a JSON document to a Python object

In [5]: dict2 = json.loads(json2)

In [6]: dict1
Out[6]: {u'message': u'', u'result': [{u'MarketName': u'USDT-BTC'}], u'success': True}

In [7]: dict2
Out[7]: {u'success1': True}

In [8]: dict1['result'] = dict2

In [9]: dict1
Out[9]: {u'message': u'', u'result': {u'success1': True}, u'success': True}

In [10]: final_json = json.dumps(dict1) # Serialize obj to a JSON formatted str

In [11]: final_json
Out[11]: '{"message": "", "result": {"success1": true}, "success": true}'

答案 3 :(得分:0)

如果 json1 json2 的类型是dict,则可以使用

json1['result'] = json2

但是,如果它们最初是字符串,则必须对 json1 json2 使用 json.loads ,并使用上述代码更新值。

import json
json.loads(json1)
json.loads(json2)
json1['result'] = json2