在python中组合多个json加载
我是python新手,熟悉php,我正在尝试找出如何将来自多个数据集的json.loads组合成一个数据集 这就是我所拥有的:在python中组合多个json加载,python,json,list,dictionary,merge,Python,Json,List,Dictionary,Merge,我是python新手,熟悉php,我正在尝试找出如何将来自多个数据集的json.loads组合成一个数据集 这就是我所拥有的: import json var = json.loads('{"root": [{"item 1": "1","item 2": "2","List1": [1,2,3]}]}') var2 = json.loads('{"root": [{"item 1": "1","item 2": "2","List2": [1,2,3]}]}') import pprint
import json
var = json.loads('{"root": [{"item 1": "1","item 2": "2","List1": [1,2,3]}]}')
var2 = json.loads('{"root": [{"item 1": "1","item 2": "2","List2": [1,2,3]}]}')
import pprint
print 'var:'
pprint.pprint(var);
print 'var2:'
pprint.pprint(var2);
print 'deepcopy:'
import copy;
var3 = var;
var3 = copy.deepcopy(var2);
pprint.pprint(var3);
print 'dict copy:'
pprint.pprint(dict(var.items() + var2.items()));
结果:
变量:
{u'root':[{u'List1':[1,2,3],u'item 1':u'1',u'item 2':u'2'}]}
变量2:
{u'root':[{u'List2':[1,2,3],u'item 1':u'1',u'item 2':u'2'}]}
深度复制:
{u'root':[{u'List2':[1,2,3],u'item 1':u'1',u'item 2':u'2'}]}
口述副本:
{u'root':[{u'List2':[1,2,3],u'item 1':u'1',u'item 2':u'2'}]}
我正在寻找这样的结果(包括两个列表),但包括重复的项目也会有帮助,因为这样我将朝着正确的方向前进:
{u'root':[{u'List1':[1,2,3],u'List2':[1,2,3],u'item 1':u'1',u'item 2':u'2'}]}这应该给你想要的:
var3 = var
var3['root'][0].update(var2['root'][0])
虽然我不确定为什么键根“
处的值
是一个包含单个dict
元素的列表。如果这不是必需的,那么如果
值
只是dict
本身,就会更干净,那么您可以执行以下操作:
var3 = var
var3['root'].update(var2['root'])
这不是一个JSON问题,而是一个Python dict()问题,因为
JSON.loads()
的输出是一个字典。你真正想要的是一种结合两本字典的方法。要创建所需的结果,可以执行以下操作
var3['root'] = var1.update(var2['root'])
干杯 检查谢谢,这是我得到我试过的“dict copy”项目的地方,打印结果#4。不幸的是,这样做不行,我相信这是因为解析的JSON是字典和列表的混合体。@brainovergrow这种情况比加载多个JSON文件的操作要复杂一些,我需要将它们合并到一个数组中。该结构是JSON文件加载方式的简化示例。谢谢,所以如果我想在所有情况下都能这样做,我可以创建一个函数来循环数组1的每个元素,并用数组2更新?