如何将json拆分为每个文档的多个文件
我有一个包含数千个文档的大型json文件:如何将json拆分为每个文档的多个文件,json,Json,我有一个包含数千个文档的大型json文件: [ { "_id": "document1", "fields": [ ... ] }, { "_id": "document2", "fields": [ ... ] }, ... ] 我想拆分这个json文件,使每个json文件包含一个文档,并相应地命名它们: document1.json, document2.json, ... 例如,do
[
{
"_id": "document1",
"fields": [ ... ]
},
{
"_id": "document2",
"fields": [ ... ]
},
...
]
我想拆分这个json文件,使每个json文件包含一个文档,并相应地命名它们:
document1.json, document2.json, ...
例如,document1.json
将包含:
{
"_id": "document1",
"fields": [ ... ]
}
我对jqapi一无所知,我正在努力寻找答案(我找到了一个答案,但略有不同:()虽然JSON中的
JS
确实代表JavaScript,但JSON并不依赖于JavaScript或其他特定编程语言。大多数现代编程语言都能够读取JSON文件。因此,您需要做的是:
这是一个通用算法,取决于您在步骤1中选择的语言。如果您仍然无法使用特定语言进行测试,请在上面的问题中添加特定于语言的代码,我们可以为您提供进一步帮助。以下是解决您问题的Python解决方案 不要忘记将文件路径中的
更改为大JSON文件的位置
旁注:我在Python 3中运行这个,它应该在Python 2中工作,以及
你熟悉任何编程语言,如PHP等吗?@ Kojo7我不熟悉与JavaScript和Web应用相关的语言。我的领域是基于Python、Matlab和C++的。我已经为你添加了一个伪代码答案。如果你最终尝试了一些特定于语言的代码仍然无法使用,请将其添加到上面的答案中,然后给我留言,让我知道您的问题已更改。如果您对代码有任何疑问,请留言。:)这太好了,谢谢。对于正在阅读的任何人,如果文件名所需的“键”位于数组元素的子属性中,请使用json_obj['properties']['LGA_CODE16']+',代替id。你知道我怎么做吗?用一些样本数据提问,我可以在7小时内给你。听起来你是在处理json数组吗?@StefanJCollier你是说在另一个问题中?
import json
in_file_path='path/to/file.json' # Change me!
with open(in_file_path,'r') as in_json_file:
# Read the file and convert it to a dictionary
json_obj_list = json.load(in_json_file)
for json_obj in json_obj_list:
filename=json_obj['_id']+'.json'
with open(filename, 'w') as out_json_file:
# Save each obj to their respective filepath
# with pretty formatting thanks to `indent=4`
json.dump(json_obj, out_json_file, indent=4)