objeto limpiar libreria leer instalar how guardar formato escribir dinamico datos crear convertir python json

limpiar - Lectura de archivos json bastante grandes en Python



limpiar json python (1)

Posible duplicado:
¿Existe una manera eficiente y rápida de cargar archivos grandes JSON en python?

Así que tengo algunos archivos bastante grandes codificados json. El más pequeño es de 300 MB, pero este es con mucho el más pequeño. El resto son GB múltiples, desde alrededor de 2GB a 10GB +.

Parece que me quedo sin memoria cuando intento cargar el archivo con Python. Actualmente estoy realizando algunas pruebas para ver aproximadamente cuánto tiempo tendremos que lidiar con estas cosas para ver a dónde ir desde aquí. Aquí está el código que estoy usando para probar:

from datetime import datetime import json print datetime.now() f = open(''file.json'', ''r'') json.load(f) f.close() print datetime.now()

No es demasiado sorprendente, Python me da un MemoryError. Parece que json.load () llama a json.loads (f.read ()), que está tratando de volcar todo el archivo en la memoria primero, lo que claramente no va a funcionar.

¿De alguna manera puedo resolver esto limpiamente?

Sé que esto es viejo, pero no creo que sea un duplicado. Si bien la respuesta es la misma, la pregunta es diferente. En el "duplicado", la pregunta es cómo leer archivos de gran tamaño de manera eficiente, mientras que esta pregunta trata de archivos que ni siquiera caben en la memoria. Eficiencia no es requerida


La mejor opción parece ser usar algo como ijson , un módulo que funcionará con JSON como una secuencia, en lugar de como un archivo de bloque.

Editar: También vale la pena ver el comentario de kashif sobre json-streamer .