首页 > 解决方案 > 拆分 JSON 文件

问题描述

我有一个 JSON 文件(api.json),其中包含来自 API 的字典列表,如下所示:

[
{
    "column1": "value1",
    "column2": "value2",
    "column3": "value3"
},
{
    "column1": "value4",
    "column2": "value5",
    "column3": "{'something':'something'}"
},
{
    "column1": "value7",
    "column2": "value8",
    "column3": "value9"
},
]

列表中的每个字典都代表数据库中的一行。该列表很大,我不想将其加载到内存中。如何将文件拆分为多个较小的文件(不使用 bash) - 每个文件包含不超过 1000 个字典的列表?根据https://stackoverflow.com/a/6475340/8156638我可以逐行读取文件但如何拆分它?

PS当我尝试使用 json.load() 我得到 MemoryError

标签: python

解决方案


通过保持结构拆分。

您有一个数组,由外部方括号表示:[]

然后,您有对象,但用大括号表示:{}

通过创建不同的数组拆分成不同的文件:

档案一:

[
  {
    "column1": "value1",
    "column2": "value2",
    "column3": "value3"
  },
  {
    "column1": "value4",
    "column2": "value5",
    "column3": "{'something':'something'}"
  }
]

文件 B:

[
  {
    "column1": "value7",
    "column2": "value8",
    "column3": "value9"
  }
]

然后,您可以读取每个文件,它们将是正确的。


推荐阅读