python - 如何按每一行处理大json文件并有效地转换为csv?
问题描述
我在每一行都有一个带有 json 字符串的大文件,我想选择几个属性并将它们保存为 csv。我有以下代码。大约有 200 万行,我想提取其中的一部分,最多 100 万行。我知道更好的解决方案是将json存储在一个文件中,所以也许有一种方法可以先拆分它?
无论如何,当尝试一次创建数据帧时,这样的代码会达到内存限制。请您提出最合适的解决方案好吗?
import json
import pandas as pd
from itertools import islice
from pandas.io.json import json_normalize
data = []
with open("input.json") as f:
head = list(islice(f, 0, 100000))
for line in head:
if 'cat' in line:
data.append(json.loads(line))
#creating a dataframe
df = json_normalize(data, errors='ignore')
df = df[['col1','col2','col3']]
df.to_csv("output.csv", header=True, sep=';')
解决方案
你为什么要head
留在记忆中。您可以直接使用循环并在达到100万时停止。
推荐阅读
- java - Java编程问题,逻辑问题
- reactjs - 我怎样才能做出反应来创建一个项目
- html - 中心按钮和表格
- flutter - 如何在 ffmpeg 执行中添加 Flutter AppDirectory 路径
- c# - 使用 c# 的 Cron 表达式在几分钟和几秒钟内不起作用
- reactjs - “subscribeToMore”Apollo 客户端订阅行为怪异
- java - 在 Java 中,使用 && 运算符,它会计算所有实例并最终确定还是一旦找到 false,它会立即返回 false
- xor - 使用 XOR 解密?
- php - 循环遍历数组内数组内的数组,该数组可能无限深
- python - 弹性搜索请求