将两个JSON对象合并为一个

时间:2009-07-08 07:13:14

标签: python json

我有两个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 :(得分:19)

一旦它们采用JSON格式,你就无法做到 - JSON只是文本。您需要先在Python中将它们组合在一起:

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

答案 1 :(得分:6)

不确定我是否遗漏了某些内容,但我认为这可以在您指定的输出中运行(在python 2.5中测试):

import simplejson

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

答案 2 :(得分:0)

你有两种技巧。列表版本受到订单重要的限制。但是,JSON看起来稍微简单一些。字典版本具有嵌套数据,看起来更复杂。

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


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