Как обработать большой файл JSON по каждой строке и эффективно конвертировать в CSV? - PullRequest
0 голосов
/ 07 июня 2018

У меня большой файл со строкой json в каждой строке, и я хочу выбрать несколько атрибутов и сохранить их как csv.У меня есть следующий код для этого.Есть около 2 миллионов строк, и я хочу извлечь часть из них, до 1 миллиона.Я знаю, что лучшим решением было бы хранить jsons не в одном файле, так что, может быть, есть способ разбить его первым?

В любом случае, если подобный код достигает предела памяти, при попытке создать кадр данных сразу.Не могли бы вы предложить наиболее подходящее решение, пожалуйста?

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=';')

1 Ответ

0 голосов
/ 07 июня 2018

почему вы храните head в памяти.Вы можете напрямую использовать цикл и остановиться, когда достигнете 1 млн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...