【问题标题】:Combining two JSON objects in to one将两个 JSON 对象合二为一
【发布时间】:2009-07-08 07:13:13
【问题描述】:

我有两个 JSON 对象。一种是使用 json,dumps() 转换的 python 数组,其他包含来自数据库的记录并使用 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"
      }
    }
  ]
}

我该怎么做?

【问题讨论】:

  • typeof(finalObj.obj2) 返回客户端是字符串。要取回 JSON 对象,请使用 JSON.parse(finalObj)

标签: python json


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    不确定我是否遗漏了什么,但我认为这适用于您指定的输出(在 python 2.5 中测试):

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 1970-01-01
      相关资源
      最近更新 更多