limpiar - Cargando y analizando un archivo JSON con mĂșltiples objetos JSON en Python
limpiar json python (3)
Estoy intentando cargar y analizar un archivo JSON en Python . Pero estoy atrapado tratando de cargar el archivo:
import json
json_data = open(''file'')
data = json.load(json_data)
Rendimientos:
ValueError: Extra data: line 2 column 1 - line 225116 column 1 (char 232 - 160128774)
Miré a 18.2. json
- Codificador y decodificador JSON en la documentación de Python, pero es bastante desalentador leer esta horrible documentación.
Eso está mal formateado. Usted tiene un objeto JSON por línea, pero no están contenidos en una estructura de datos más grande (es decir, una matriz). Necesitarás volver a formatearlo para que comience con [
y termine con ]
con una coma al final de cada línea, o analizarlo línea por línea como diccionarios separados.
Tienes un archivo de texto en formato JSON Lines . Necesita analizar su archivo línea por línea:
import json
data = []
with open(''file'') as f:
for line in f:
data.append(json.loads(line))
Cada línea contiene JSON válido, pero en su conjunto, no es un valor JSON válido ya que no hay una lista de nivel superior o una definición de objeto.
Tenga en cuenta que debido a que el archivo contiene JSON por línea, se guardan los dolores de cabeza de intentar analizarlo todo de una vez o descubrir un analizador JSON de transmisión. Ahora puede optar por procesar cada línea por separado antes de pasar a la siguiente, guardando la memoria en el proceso. Probablemente no desee agregar cada resultado a una lista y luego procesar todo si su archivo es realmente grande.
Si tiene un archivo que contiene objetos JSON individuales con delimitadores intermedios, use ¿Cómo uso el módulo ''json'' para leer en un objeto JSON a la vez? para analizar objetos individuales usando un método de buffer.
para aquellos que tropiezan con esta pregunta: la biblioteca de jsonlines
(mucho más joven que esta pregunta) con elegancia. maneja archivos con un documento json por línea. ver https://jsonlines.readthedocs.io/