Lesen ziemlich großer JSON-Dateien in Python [duplizieren]

Mögliche Duplikate:
Gibt es eine speichereffiziente und schnelle Möglichkeit, große JSON-Dateien in Python zu laden?

Also habe ich einige ziemlich große json-codierte Dateien. Die kleinste ist 300 MB, aber dies ist bei weitem die kleinste. Der Rest besteht aus mehreren GB, von etwa 2 GB bis 10 GB +.

Daher scheint mir der Speicherplatz zu knapp zu werden, wenn ich versuche, die Datei mit Python zu laden. Momentan führe ich nur einige Tests durch, um zu sehen, wie lange der Umgang mit diesem Zeug dauern wird, um zu sehen, wie es weitergeht. Hier ist der Code, den ich zum Testen verwende:

<code>from datetime import datetime
import json

print datetime.now()

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

print datetime.now()
</code>

Es überrascht nicht, dass Python mir einen MemoryError gibt. Es scheint, dass json.load () json.loads (f.read ()) aufruft, das versucht, die gesamte Datei zuerst in den Speicher zu kopieren, was offensichtlich nicht funktioniert.

Wie kann ich das sauber lösen?

Ich weiß, dass dies alt ist, aber ich denke nicht, dass dies ein Duplikat ist. Während die Antwort die gleiche ist, ist die Frage unterschiedlich. Beim "Duplikat" geht es darum, wie große Dateien effizient gelesen werden können, während es sich bei dieser Frage um Dateien handelt, die überhaupt nicht in den Arbeitsspeicher passen. Effizienz ist nicht erforderlich.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage