将两个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
你有两种方法。列表的方式有个缺点,就是顺序很重要。不过,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)