[英]Merge multiple JSON into single one (Python)
I am searching for a way to merge multiple JSONs into a single one. 我正在寻找一种将多个JSON合并为一个的方法。 My output is in this format:
我的输出是这种格式:
[{"Nome bollettino": "Bollettino 1"}, {"Causale": "1"}, {"Numero": "1"}]
[{"Nome bollettino": "Bollettino 2"}, {"Causale": "2"}, {"Numero": "2"}]
[{"Nome bollettino": "Bollettino 3"}, {"Causale": "3"}, {"Numero": "3"}]
[{"Nome bollettino": "Bollettino 4"}, {"Causale": "4"}, {"Numero": "4"}]
[{"Nome bollettino": "Bollettino 5"}, {"Causale": "5"}, {"Numero": "5"}]
[{"Nome bollettino": "Bollettino 6"}, {"Causale": "6"}, {"Numero": "6"}]
[{"Nome bollettino": "Bollettino 7"}, {"Causale": "7"}, {"Numero": "7"}]
[{"Nome bollettino": "Bollettino 8"}, {"Causale": "8"}, {"Numero": "8"}]
[{"Nome bollettino": "Bollettino 9"}, {"Causale": "9"}, {"Numero": "9"}]
[{"Nome bollettino": "Bollettino 10"}, {"Causale": "10"}, {"Numero": "10"}]
Every single line is a valid JSON. 每行都是有效的JSON。 I a looking for a way to do it in Python, like this site do.
我正在寻找一种使用Python做到这一点的方法,就像本网站一样。 Here you can find the code I am using to generate JSON data.
在这里,您可以找到我用来生成JSON数据的代码。
I have tried to use jsonmerge
and json-merger
but it's not so effective. 我试图使用
jsonmerge
和json-merger
但是效果不是很好。 The site above do the work perfect but I need to do it in Python. 上面的网站可以完美地完成工作,但是我需要使用Python来完成。
Particularly, with jsonmerge
using the syntax from the documentation , the output is only the first two values... 特别是,使用文档中语法的
jsonmerge
,输出只是前两个值...
result = merge(bollettini, causale, numero)
print(result)
{'Nome bollettino': 'Bollettino 1', 'Causale': '1'}
{'Nome bollettino': 'Bollettino 2', 'Causale': '2'}
{'Nome bollettino': 'Bollettino 3', 'Causale': '3'}
etc...
...which are not even JSON's. ...甚至不是JSON的。
How to merge them ? 如何合并它们?
Or like this with a 2D array output. 或像这样使用2D阵列输出。
import json
idx = 0
count = [idx]
data = []
while idx < 10:
idx += 1
bollettini = {'Nome bollettino': 'Bollettino ' + str(idx) }
causale = {'Causale': str(idx) }
numero = {'Numero': str(idx) }
data.append([bollettini]+[causale]+[numero])
json_data = json.dumps(data)
print (json_data) #added parenthesis
Say you have multiple jsons as list of lists like 假设您有多个json作为列表列表,例如
l = [[{"Nome bollettino": "Bollettino 1"}, {"Causale": "1"}, {"Numero": "1"}]
[{"Nome bollettino": "Bollettino 2"}, {"Causale": "2"}, {"Numero": "2"}]
[{"Nome bollettino": "Bollettino 3"}, {"Causale": "3"}, {"Numero": "3"}]
[{"Nome bollettino": "Bollettino 4"}, {"Causale": "4"}, {"Numero": "4"}]
[{"Nome bollettino": "Bollettino 5"}, {"Causale": "5"}, {"Numero": "5"}]
[{"Nome bollettino": "Bollettino 6"}, {"Causale": "6"}, {"Numero": "6"}]
[{"Nome bollettino": "Bollettino 7"}, {"Causale": "7"}, {"Numero": "7"}]
[{"Nome bollettino": "Bollettino 8"}, {"Causale": "8"}, {"Numero": "8"}]
[{"Nome bollettino": "Bollettino 9"}, {"Causale": "9"}, {"Numero": "9"}]
[{"Nome bollettino": "Bollettino 10"}, {"Causale": "10"}, {"Numero": "10"}]]
You just need to chain the lists to form a single one! 您只需要将列表链接成一个列表即可! Read more on
itertools.chain
here 在此处阅读有关
itertools.chain
更多信息
>>> from itertools import chain
>>> list(chain.from_iterable(l))
after dumping your data as json Output: 将数据转储为json输出后:
[{"Nome bollettino": "Bollettino 1"}, {"Causale": "1"}, {"Numero": "1"}, {"Nome bollettino": "Bollettino 2"}, {"Causale": "2"}, {"Numero": "2"}, {"Nome bollettino": "Bollettino 3"}, {"Causale": "3"}, {"Numero": "3"}, {"Nome bollettino": "Bollettino 4"}, {"Causale": "4"}, {"Numero": "4"}, {"Nome bollettino": "Bollettino 5"}, {"Causale": "5"}, {"Numero": "5"}, {"Nome bollettino": "Bollettino 6"}, {"Causale": "6"}, {"Numero": "6"}, {"Nome bollettino": "Bollettino 7"}, {"Causale": "7"}, {"Numero": "7"}, {"Nome bollettino": "Bollettino 8"}, {"Causale": "8"}, {"Numero": "8"}, {"Nome bollettino": "Bollettino 9"}, {"Causale": "9"}, {"Numero": "9"}, {"Nome bollettino": "Bollettino 10"}, {"Causale": "10"}, {"Numero": "10"}]
... it is quite unclear what you want have, may that helps: ...目前尚不清楚您想要什么,这可能会有所帮助:
input = [
[{"Nome bollettino": "Bollettino 1"}, {"Causale": "1"}, {"Numero": "1"}],
[{"Nome bollettino": "Bollettino 2"}, {"Causale": "2"}, {"Numero": "2"}],
[{"Nome bollettino": "Bollettino 3"}, {"Causale": "3"}, {"Numero": "3"}],
[{"Nome bollettino": "Bollettino 4"}, {"Causale": "4"}, {"Numero": "4"}],
[{"Nome bollettino": "Bollettino 5"}, {"Causale": "5"}, {"Numero": "5"}],
[{"Nome bollettino": "Bollettino 6"}, {"Causale": "6"}, {"Numero": "6"}],
[{"Nome bollettino": "Bollettino 7"}, {"Causale": "7"}, {"Numero": "7"}],
[{"Nome bollettino": "Bollettino 8"}, {"Causale": "8"}, {"Numero": "8"}],
[{"Nome bollettino": "Bollettino 9"}, {"Causale": "9"}, {"Numero": "9"}],
[{"Nome bollettino": "Bollettino 10"}, {"Causale": "10"}, {"Numero": "10"}]
]
result = []
for line in input:
result.append({k:v for x in line for (k,v) in x.items()})
result: 结果:
[{'Causale': '1', 'Nome bollettino': 'Bollettino 1', 'Numero': '1'},
{'Causale': '2', 'Nome bollettino': 'Bollettino 2', 'Numero': '2'},
{'Causale': '3', 'Nome bollettino': 'Bollettino 3', 'Numero': '3'},
{'Causale': '4', 'Nome bollettino': 'Bollettino 4', 'Numero': '4'},
{'Causale': '5', 'Nome bollettino': 'Bollettino 5', 'Numero': '5'},
{'Causale': '6', 'Nome bollettino': 'Bollettino 6', 'Numero': '6'},
{'Causale': '7', 'Nome bollettino': 'Bollettino 7', 'Numero': '7'},
{'Causale': '8', 'Nome bollettino': 'Bollettino 8', 'Numero': '8'},
{'Causale': '9', 'Nome bollettino': 'Bollettino 9', 'Numero': '9'},
{'Causale': '10', 'Nome bollettino': 'Bollettino 10', 'Numero': '10'}]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.