【问题标题】:How to process big json file by each line and convert to csv efficiently?如何按每一行处理大 json 文件并有效地转换为 csv?
【发布时间】: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=';')

【问题讨论】:

标签: python json pandas csv


【解决方案1】:

为什么要将head 保留在内存中。可以直接使用循环,达到100万就停止。

【讨论】:

    猜你喜欢
    • 2019-01-28
    • 2018-10-03
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2012-10-25
    相关资源
    最近更新 更多