如何将json拆分为每个文档的多个文件

如何将json拆分为每个文档的多个文件,json,Json,我有一个包含数千个文档的大型json文件: [ { "_id": "document1", "fields": [ ... ] }, { "_id": "document2", "fields": [ ... ] }, ... ] 我想拆分这个json文件,使每个json文件包含一个文档,并相应地命名它们: document1.json, document2.json, ... 例如,do

我有一个包含数千个文档的大型json文件:

[
    {
        "_id": "document1",
        "fields": [ ... ]
    },
    {
        "_id": "document2",
        "fields": [ ... ]
    },
    ...
]
我想拆分这个json文件,使每个json文件包含一个文档,并相应地命名它们:

document1.json, document2.json, ...
例如,
document1.json
将包含:

{
    "_id": "document1",
    "fields": [ ... ]
}

我对jqapi一无所知,我正在努力寻找答案(我找到了一个答案,但略有不同:()虽然JSON中的
JS
确实代表JavaScript,但JSON并不依赖于JavaScript或其他特定编程语言。大多数现代编程语言都能够读取JSON文件。因此,您需要做的是:

  • 选择您最熟悉的语言(即Python)
  • 读取大型JSON文件
  • 将JSON文件转换为特定于您的编程语言的对象(步骤2和步骤3可以结合使用,具体取决于您在步骤1中选择的语言)
  • 循环遍历数组中的每个对象
  • 在循环中,使用指定的文件名创建一个新文件
  • 同样在循环中,将该对象中的数据保存到文件中
  • 同样在循环中,关闭文件(步骤5到7可能会根据您的语言组合在一起)

  • 这是一个通用算法,取决于您在步骤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)