23 мая 2017 г., 14:03 от CommunityTom Carrick

Чтение довольно больших файлов json в Python [дубликаты]

Possible Duplicate:
Is there a memory efficient and fast way to load big json files in python?

Так что у меня есть довольно большие файлы в формате JSON. Самый маленький - 300 МБ, но это, безусловно, самый маленький. Остальные - несколько ГБ, где-то от 2 ГБ до 10 ГБ +.

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

<code>from datetime import datetime
import json

print datetime.now()

f = open('file.json', 'r')
json.load(f)
f.close()

print datetime.now()
</code>

Не удивительно, что Python дает мне MemoryError. Похоже, что json.load () вызывает json.loads (f.read ()), который пытается сначала выгружать весь файл в память, что явно не сработает.

В любом случае, я могу решить это чисто?

Я знаю, что это старое, но я не думаю, что это дубликат. Хотя ответ один и тот же, вопрос другой. В «дубликате» вопрос заключается в том, как эффективно читать большие файлы, тогда как этот вопрос касается файлов, которые вообще не помещаются в память. Эффективность не требуется.

Ответы на вопрос (0)

30 апр. 2012 г., 09:44 от Community

Ijson - модуль, который будет работать с JSON как поток, а не как файл блока.

Редакция: тоже стоит посмотреть - комментарий Кашифа околоjson-streamer.

ВАШ ОТВЕТ НА ВОПРОС