Cómo leer y analizar un archivo JSON en Python
Aprenda a leer, analizar y cargar archivos JSON en Python utilizando el módulo json integrado. Domine la conversión de cadenas JSON a diccionarios y viceversa.
Descripción general
JSON (Notación de objetos JavaScript) es el formato de datos más popular para API, archivos de configuración y almacenamiento de datos. Python viene con un módulo `json` incorporado que hace que sea increíblemente sencillo leer, analizar y escribir datos JSON. Dado que los objetos JSON se asignan perfectamente a los diccionarios de Python y las matrices JSON se asignan a las listas de Python, trabajar con JSON se siente nativo.
Para leer JSON desde un archivo externo, utiliza la función `json.load()`, que analiza una secuencia de archivos y traduce las estructuras JSON a tipos de datos Python. Si los datos JSON ya están cargados en la memoria como una cadena, utilice la función `json.loads()` (la 's' significa cadena). Seleccionar la función correcta evita fallos del analizador.
Cuando se trabaja con JSON, es una buena práctica controlar los posibles errores de codificación y formato. El uso de `encoding="utf-8"` dentro de la declaración `open()` protege su secuencia de comandos para que no falle en caracteres especiales. Envolver las operaciones de archivos en un bloque `try-except` que detecte `json.JSONDecodeError` garantiza que su aplicación se degrade correctamente si el archivo JSON tiene un formato incorrecto.
Código y salida de ejecución
Este código demuestra cómo escribir un archivo JSON de muestra, leerlo y analizarlo nuevamente en un diccionario de Python y manejar una cadena JSON.
import json
# Let's write a mock JSON file first
sample_data = {
"user": "developer123",
"skills": ["python", "javascript", "sql"],
"active": True
}
with open("data.json", "w", encoding="utf-8") as f:
json.dump(sample_data, f, indent=4)
# 1. Reading from a JSON file (using json.load)
with open("data.json", "r", encoding="utf-8") as file:
data_from_file = json.load(file)
print("File Content type:", type(data_from_file).__name__)
print("User skill list:", data_from_file["skills"])
# 2. Reading from a JSON string (using json.loads)
json_string = '{"host": "localhost", "port": 5432, "ssl": false}'
data_from_str = json.loads(json_string)
print("\nString Content type:", type(data_from_str).__name__)
print("Database host:", data_from_str["host"])File Content type: dict
User skill list: ['python', 'javascript', 'sql']
String Content type: dict
Database host: localhostImplementación paso a paso
- Importe el módulo json incorporado en su secuencia de comandos.
- Abra el archivo JSON usando open("filename.json", "r", encoding="utf-8") como archivo.
- Pase el objeto de archivo a json.load(file) para analizar el contenido en un diccionario de Python.
- Utilice json.loads(string_data) si necesita analizar una cadena JSON sin formato que ya está cargada en la memoria.
Preguntas frecuentes
¿Cuál es la diferencia entre json.load() y json.loads()?
json.load() acepta un objeto de flujo similar a un archivo (lectura desde el disco), mientras que json.loads() acepta una cadena estándar o un objeto de bytes que contiene contenido JSON (lectura de la memoria).
¿Cómo manejo los errores de serialización JSON para clases personalizadas?
El módulo json de Python no puede serializar instancias de clases personalizadas de forma predeterminada. Primero debe proporcionar una clase de codificador personalizada que extienda json.JSONEncoder o extraer los atributos de la instancia en un diccionario usando un método auxiliar.
Temas relacionados
Aprenda a leer archivos en Python. Domine la declaración abierta, la línea de lectura, las líneas de lectura y el manejo seguro de excepciones de archivos.
Cómo escribir en un archivo en PythonAprenda a escribir texto en archivos en Python. Domine la diferencia entre los modos de escritura ("w") y anexar ("a") con administradores de contexto seguros.
Cómo crear un diccionario en PythonAprenda a crear un diccionario en Python. Comprenda la sintaxis literal, el constructor de dict, las comprensiones de dict y los inicializadores de claves-valor.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
E/S de archivos Python
Aprenda a leer y escribir archivos en Python. Domine los administradores de contexto open(), read(), write() y contexto para manejar operaciones de archivos de forma segura sin fugas de recursos.
Hoja de referencia de operaciones de archivos de Python
Referencia rápida para leer y escribir archivos en Python. Domina los modos abiertos, los administradores de contexto y la lectura línea por línea.
Python vs JavaScript: ¿Qué lenguaje de programación es mejor?
Una comparación completa entre Python y JavaScript. Explore las diferencias de sintaxis, el rendimiento, los casos de uso (backend frente a frontend) y ejemplos de codificación.