J'ai quelques gros fichiers encodés en json. Le plus petit fait 300 Mo ; les autres font plusieurs Go, de 2 Go à plus de 10 Go.
Il semble que je manque de mémoire lorsque j'essaie de charger les fichiers dans Python.
J'ai essayé d'utiliser ce code pour tester les performances :
from datetime import datetime
import json
print datetime.now()
f = open('file.json', 'r')
json.load(f)
f.close()
print datetime.now()
Il n'est pas surprenant que cela provoque une MemoryError
. Il apparaît que json.load()
appels json.loads(f.read())
qui essaie d'abord de transférer l'intégralité du fichier en mémoire, ce qui ne fonctionnera manifestement pas.
Comment puis-je résoudre ce problème proprement ?
Je sais que cette question est ancienne, mais je ne pense pas qu'il s'agisse d'un doublon. La réponse est la même, mais la question est différente. Dans le "duplicata", la question est de savoir comment lire efficacement de gros fichiers, alors que cette question porte sur des fichiers qui ne tiennent même pas du tout dans la mémoire. L'efficacité n'est pas nécessaire.