python - 拆分 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
解决方案
通过保持结构拆分。
您有一个数组,由外部方括号表示:[]
然后,您有对象,但用大括号表示:{}
通过创建不同的数组拆分成不同的文件:
档案一:
[
{
"column1": "value1",
"column2": "value2",
"column3": "value3"
},
{
"column1": "value4",
"column2": "value5",
"column3": "{'something':'something'}"
}
]
文件 B:
[
{
"column1": "value7",
"column2": "value8",
"column3": "value9"
}
]
然后,您可以读取每个文件,它们将是正确的。
推荐阅读
- kubernetes - Istio-proxy 不会通过 global.proxy.includeIPRanges 配置拦截传出流量
- namespaces - “http://”或“mailto:”是否被视为语义语言(如 RDF)中的命名空间?
- reactjs - 道具更改后反应组件不会重新渲染
- naming-conventions - UI 和 DB 中相同概念的不同名称的命名约定
- windows - Qt:如何避免 Windows 软键盘覆盖输入字段?
- javascript - Node.js azure web 应用程序无法访问我的路线
- apache-camel - 如何在内容丰富()中使用骆驼的 Exchange setProperty?
- javascript - Javascript如何将元素附加到具有特定类的div
- c# - 使用 SQLiteParameter 设置默认值
- python - 为什么我的 python 字数统计程序不起作用?