如何在python

时间:2016-01-13 05:29:53

标签: python json merge

我有一个包含多个json字符串的列表,如此

a = [{"name": "Alex"},{"Age": 25},{"Address": "16, Mount View"}]

我想将这些合并到像这样的单个数组中

a = [{"name": "Alex","Age": 25,"Address": "16, Mount View"}]

我尝试过使用jsonmerge,但在使用head' and base`值时运气不好。

有人可以帮我一把。

我在堆栈中也经历了一个类似的问题,但是它显示了单独的json的合并,但是列表中没有json How to merge two json

2 个答案:

答案 0 :(得分:3)

首先,这些是python dicts

[{"name": "Alex"},{"Age": 25},{"Address": "16, Mount View"}]

你可以在它们上面调用json.dump并将它们变成“json strings”。

第二,你可以使用dict更新方法

a =  [{"name": "Alex"},{"Age": 25},{"Address": "16, Mount View"}]
d = {}
for small_dict in a:
    d.update(small_dict)
print(d) # Yay!
a = [d]

警告! ,如果你有重复的密钥,他们会互相覆盖

另请查看“ChainMap”

https://docs.python.org/3/library/collections.html#collections.ChainMap

答案 1 :(得分:2)

要添加到@yoav glazner的答案,如果您使用的是Python 3.3+,则可以使用ChainMap

>>> from collections import ChainMap
>>> a = [{"name": "Alex"},{"Age": 25},{"Address": "16, Mount View"}]
>>> dict(ChainMap(*a))
{'name': 'Alex', 'Age': 25, 'Address': '16, Mount View'}

在此处详细了解ChainMap用例: