我有一个包含多个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
答案 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
用例: