2015-01-05 68 views
0

我想使用Python结合数据。举一个例子,我想使用Python添加JSON属性?

[{'foo': 'something'}, {'foo': 'something else'}, {'foo': 'something else'}] 

[{'bar': 'else'}, {'bar': 'else else'}, {'bar': 'else else'}] 

这样结合起来的东西:

[{'foo: 'something', 'bar': 'else'}, {'foo': 'something else', 'bar': 'else else'}, {'foo': 'something else', 'bar': 'else else'}] 

这会是可能在Python?

回答

1

您只需要为每两个输入字典生成一个新的字典。使用zip()产生对:

result = [dict(a, **b) for a, b in zip(first, second)] 

其中firstsecond是你的输入列表。 dict()创建一个现有字典的副本,但**b语法是添加其他密钥的一些技巧。

1

的结果将是一个

a = [{'foo': 'something'}, {'foo': 'something else'}, {'foo': 'something else'}] 
b = [{'bar': 'else'}, {'bar': 'else else'}, {'bar': 'else else'}] 
for i,j in zip(a,b): 
    i.update(j) 
print a 
+0

这将更新就地第一个列表。请注意,'i = None'分配在这里完全是多余的。 @ user3587412:如果这个答案对你最有帮助,我很好,但你不能将*两个答案都标记为有用。它只是一个或另一个。 :-) –

+0

@ MartijnPieters-你是对的,是java用来初始化变量的人。 – ni3ns