将两个JSON对象合并到

2024-06-01 04:36:45 发布

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

我有两个JSON对象。一个是python数组,它使用json、dumps()进行转换,另一个包含来自数据库的记录,并使用json序列化程序进行序列化。我想把它们组合成一个JSON对象。

例如:

obj1 = ["a1", "a2", "a3"]

obj2 = [{
    "pk": "e1",
    "model": "AB.abc",
    "fields": {
      "e_desc": "abcd"
    }
  },
  {
    "pk": "e1",
    "model": "AB.abc",
    "fields": {
      "e_desc": "hij"
    }
  }
]

我要将它们合并为单个对象,如下所示:

finalObj = {
  obj1: ["a1", "a2", "a3"],
  obj2: [{
      "pk": "e1",
      "model": "AB.abc",
      "fields": {
        "e_desc": "abcd"
      }
    },
    {
      "pk": "e1",
      "model": "AB.abc",
      "fields": {
        "e_desc": "hij"
      }
    }
  ]
}

我该怎么做?


Tags: 对象jsona2fieldsmodel序列化aba1
3条回答

一旦它们是JSON格式,就不能这样做了-JSON只是文本。您需要先在Python中组合它们:

data = { 'obj1' : obj1, 'obj2' : obj2 }
json.dumps(data)

不确定我是否遗漏了什么,但我认为这可以(在Python2.5中测试)使用您指定的输出:

import simplejson

finalObj = { 'obj1': obj1, 'obj2': obj2 }
simplejson.dumps(finalObj)

你有两种技巧。列表版本受到顺序的限制。不过,JSON看起来稍微简单一些。字典版本有嵌套数据,看起来更复杂。

data = { 'obj1' : obj1, 'obj2' : obj2 }
json.dumps(data,indent=2)


data = [ obj1, obj2 ]
json.dumps(data,indent=2)

相关问题 更多 >