Análisis de Python JSON: serialización y deserialización
Aprenda a leer, escribir y analizar datos JSON en Python. Domine json.loads, json.dumps y personalice codificadores/decodificadores JSON.
Descripción general
JSON (JavaScript Object Notation) es el formato ligero de intercambio de datos que domina las API web, las configuraciones y las cargas de bases de datos modernas. Debido a que las estructuras JSON se parecen a los diccionarios y listas de Python, la traducción entre ellas es increíblemente fluida. Python viene equipado con un módulo `json` incorporado, lo que facilita analizar cadenas JSON en objetos Python y convertir objetos Python nuevamente en cadenas JSON.
El proceso de traducir un objeto Python (como un diccionario) a una cadena JSON sin formato se llama serialización o codificación. Esto lo manejan `json.dumps()` (para cadenas) y `json.dump()` (para escribir directamente en un archivo). Puede controlar parámetros de formato como "sangría" para embellecer el JSON o "sort_keys" para mantener los atributos ordenados alfabéticamente. Por el contrario, analizar una cadena JSON en un diccionario de Python se llama Deserialización y se ejecuta mediante `json.loads()` y `json.load()`.
Mientras que los tipos estándar de Python como cadenas, números, listas y dictados se serializan automáticamente en JSON, los objetos personalizados (como clases u objetos de fecha y hora) no lo hacen. Intentar codificar un objeto personalizado directamente generará un "TypeError". Para superar esto, los desarrolladores deben crear una clase de codificador personalizada que herede de `json.JSONEncoder` y anule el método `.default()` para serializar clases en diccionarios legibles. Dominar la manipulación de JSON es clave para comunicarse con servicios web externos.
Código y salida de ejecución
Convertir un diccionario en una cadena JSON y analizarlo nuevamente usando la biblioteca json incorporada.
import json
# Python Dictionary representing a user profile
user_profile = {
"name": "Alex",
"is_premium": True,
"skills": ["Python", "Docker"],
"age": 28
}
# Serialize dictionary to JSON string
json_string = json.dumps(user_profile, indent=2)
print("--- JSON String ---")
print(json_string)
# Deserialize JSON string back to dictionary
parsed_dict = json.loads(json_string)
print("\n--- Parsed Python Dictionary ---")
print(f"Name: {parsed_dict['name']}")
print(f"First Skill: {parsed_dict['skills'][0]}")--- JSON String ---
{
"name": "Alex",
"is_premium": true,
"skills": [
"Python",
"Docker"
],
"age": 28
}
--- Parsed Python Dictionary ---
Name: Alex
First Skill: PythonImplementación paso a paso
- Envío de cargas útiles y lectura de datos de API REST
- Almacenamiento de preferencias de configuración dentro de archivos settings.json
- Pasar cargas útiles estructuradas entre microservicios
Preguntas frecuentes
¿Cuál es la diferencia entre json.dump y json.dumps?
json.dump (sin la 's') escribe datos JSON directamente en una secuencia de archivos. json.dumps (con la 's') serializa datos en una variable de cadena de Python.
¿Cómo se manejan los errores de decodificación JSON?
Envuelva su código de análisis en un bloque try/except que capture 'json.JSONDecodeError' para manejar con elegancia cadenas JSON con formato incorrecto.
Temas relacionados
Diccionarios Master Python. Aprenda a almacenar, recuperar y manejar datos de pares clave-valor. Comprender el rendimiento y las mejores prácticas para asignaciones.
E/S de archivos PythonAprenda 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.
Python CSVAprenda a manejar datos CSV en Python. Domine csv.reader, csv.writer y DictReader/DictWriter para un análisis eficiente de tablas.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
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.
Hoja de trucos sobre métodos de cadenas de Python
Una guía de referencia completa para la manipulación de cadenas de Python. Domine el formateo, la búsqueda, la división, el reemplazo y la verificación de las propiedades de las cadenas.
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.