Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中组合多个json加载_Python_Json_List_Dictionary_Merge - Fatal编程技术网

在python中组合多个json加载

在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

我是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

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更新?