Analizador y validador Python JSON
Aprenda a leer, validar, modificar y serializar JSON en Python. Domina la biblioteca json incorporada con ejemplos realistas.
Descripción general
JSON (JavaScript Object Notation) es el formato estándar para intercambiar datos en la web. Python proporciona un potente módulo integrado llamado "json" que traduce cadenas JSON en diccionarios de Python y viceversa.
El módulo expone dos conjuntos principales de operaciones: `loads` y `dumps` para manejar cadenas JSON directamente, y `load` y `dump` para escribir o leer datos directamente desde secuencias de archivos.
Cuando se trabaja con JSON, el manejo de errores es fundamental. Python genera un `json.JSONDecodeError` si la sintaxis de la cadena está rota, lo cual es esencial detectar cuando se consumen cargas útiles de API públicas.
Código y salida de ejecución
Un script que demuestra la validación de cadenas JSON, el análisis de dict, las modificaciones y la impresión bonita.
import json
raw_json = """
{
"status": "success",
"data": {
"user_id": 9042,
"username": "coder_xyz",
"roles": ["admin", "developer"],
"verified": true
}
}
"""
try:
# Parsing JSON string into Python dict
data = json.loads(raw_json)
print("--- JSON Decoded Successfully ---")
print(f"Username: {data['data']['username']}")
print(f"Is Admin: {'admin' in data['data']['roles']}")
# Mutating Python dict
data['data']['verified'] = False
data['data']['last_login'] = "2026-05-25"
# Serializing dict back to formatted JSON
pretty_json = json.dumps(data, indent=4)
print("\n--- Modified JSON String ---")
print(pretty_json)
except json.JSONDecodeError as e:
print(f"Invalid JSON Format: {e}")--- JSON Decoded Successfully ---
Username: coder_xyz
Is Admin: True
--- Modified JSON String ---
{
"status": "success",
"data": {
"user_id": 9042,
"username": "coder_xyz",
"roles": [
"admin",
"developer"
],
"verified": false,
"last_login": "2026-05-25"
}
}Implementación paso a paso
- Lectura de configuraciones de aplicaciones y archivos de credenciales
- Análisis de respuestas de puntos finales de API REST
- Guardar estados o niveles del programa en utilidades de escritorio
Preguntas frecuentes
¿Cuál es la diferencia entre volcado y volcado en Python?
`dumps` serializa un objeto en un formato de cadena JSON, mientras que `dump` escribe la secuencia JSON serializada directamente en un objeto de archivo que se puede escribir.
¿Cómo maneja Python los valores nulos JSON?
El decodificador `json` de Python asigna automáticamente JSON `null` a `None`, `true` y `false` a `True` y `False`, y matrices a listas.