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

时间:2017-10-02 22:22:01

标签: json

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

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

我想拆分这个json文件,以便每个json文件包含一个文档,并相应地命名它们:

document1.json, document2.json, ...

例如,document1.json将包含:

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

我不了解jq API,我很难找到答案(我找到了similar question,但略有不同:()

2 个答案:

答案 0 :(得分:3)

这是一个解决您问题的Python解决方案。

  

不要忘记将>>> v1={'name1': '10', 'name2': '20'} >>> v2={'quantity1': '4', 'quantity2': '5'} >>> d={'name'+str(i+1) : int(v1['name'+str(i+1)])*int(v2['quantity'+str(i+1)]) for i in range(len(v1))} >>> d {'name2': 100, 'name1': 40} 更改为大型JSON文件的位置。

iris

附注:我在Python3中运行它, 也可以在Python2中运行

答案 1 :(得分:0)

虽然JSON中的JS代表JavaScript,但JSON并不依赖于JavaScript或其他特定的编程语言。大多数现代编程语言都能够读取JSON文件。所以你需要做的是以下几点:

  1. 选择您最熟悉的语言(即Python)
  2. 阅读大型JSON文件
  3. 将JSON文件转换为特定于您的编程语言的对象(步骤2和3可以组合,具体取决于您在步骤1中的语言选择)。
  4. 遍历数组中的每个对象
  5. 在循环中创建一个具有指定文件名的新文件。
  6. 同样在循环中,将该对象的数据保存到文件
  7. 同样在你的循环中,关闭文件(步骤5到7可能会合并,具体取决于你的语言)
  8. 这是一种通用算法,取决于您在步骤1中选择的语言。如果您仍然无法使用特定语言进行尝试,请将您的语言特定代码添加到上述问题中,我们可以进一步帮助您