将两个JSON对象合并为一个

16 投票
3 回答
44983 浏览
提问于 2025-04-15 12:45

我有两个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"
      }
    }
  ]
}

我该怎么做呢?

3 个回答

0

你有两种方法。列表的方式有个缺点,就是顺序很重要。不过,JSON看起来稍微简单一些。字典的方式有嵌套的数据,看起来就复杂一些。

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


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

我不太确定我有没有漏掉什么,但我觉得这个代码是可以工作的(在python 2.5中测试过),而且输出结果和你说的一样:

import simplejson

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

一旦数据变成了JSON格式,你就无法直接处理它了,因为JSON其实就是一种文本格式。你需要先在Python中把它们合并起来:

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

撰写回答