【发布时间】:2018-11-17 09:43:27
【问题描述】:
我有一个大文件,每一行都有 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=';')
【问题讨论】:
-
这里是how to read and parse JSON structures line by line from a file。然后,您只需要从结构中提取要获取的字段即可。