Introducción a JSON y Python
El formato JSON (JavaScript Object Notation) se ha convertido en uno de los estándares más utilizados para el intercambio de datos entre aplicaciones, gracias a su simplicidad y legibilidad. Python, como lenguaje de programación versátil, ofrece herramientas nativas para manipular datos en JSON a través del módulo json
. En este artículo, aprenderás cómo trabajar con JSON en Python usando json.loads()
y json.dumps()
, de forma clara y con ejemplos prácticos.
¿Qué es JSON y por qué es importante?
JSON es un formato de texto ligero, utilizado para almacenar y transportar datos. Es independiente del lenguaje, pero fácil de leer y escribir tanto para humanos como para máquinas. Se utiliza ampliamente en APIs, aplicaciones web y servicios en la nube.
El módulo json
en Python
Python incluye el módulo json
en su biblioteca estándar, lo que permite a los desarrolladores serializar (convertir a JSON) y deserializar (convertir desde JSON) datos de manera sencilla. Las dos funciones principales para trabajar con JSON en Python son json.loads()
y json.dumps()
.
¿Qué hace json.loads()
?
La función json.loads()
convierte una cadena JSON en un objeto de Python (como diccionario, lista, etc). Es la forma de leer datos JSON desde una fuente externa y convertirlos en una estructura manipulable dentro de Python.
¿Para qué sirve json.dumps()
?
Por el contrario, json.dumps()
toma un objeto de Python y lo convierte en una cadena JSON. Esto es útil para almacenar o enviar datos en formato JSON.
Paso a paso: ¿Cómo convertir JSON a objetos Python con json.loads()
?
- Importar el módulo
json
:import json
- Definir una cadena JSON:
json_string = {"nombre": "Ana", "edad": 28, "ciudad": "Madrid"}
- Convertir la cadena JSON a un diccionario de Python:
persona = json.loads(json_string) print(persona) # Salida: {nombre: Ana, edad: 28, ciudad: Madrid}
- Acceder a los datos:
print(persona[nombre]) # Salida: Ana print(persona[edad]) # Salida: 28
Paso a paso: ¿Cómo convertir objetos Python a JSON con json.dumps()
?
- Crear un diccionario de Python:
datos = { "nombre": "Luis", "edad": 35, "ciudad": "Barcelona" }
- Convertir el diccionario a una cadena JSON:
json_resultado = json.dumps(datos) print(json_resultado) # Salida: {"nombre": "Luis", "edad": 35, "ciudad": "Barcelona"}
- Opcional: Mejorar la legibilidad del JSON:
json_pretty = json.dumps(datos, indent=4, ensure_ascii=False) print(json_pretty) # Salida bonita: # { # "nombre": "Luis", # "edad": 35, # "ciudad": "Barcelona" # }
Trabajar con estructuras más complejas
Puedes trabajar con listas, diccionarios anidados y otros tipos de datos compatibles. Por ejemplo:
json_string =
[
{"nombre": "Ana", "edad": 28},
{"nombre": "Luis", "edad": 35}
]
personas = json.loads(json_string)
for persona in personas:
print(persona[nombre])
# Salida:
# Ana
# Luis
Consejos y mejores prácticas para manipular JSON en Python
- Utiliza
indent
enjson.dumps()
para mejorar la legibilidad. - Usa
ensure_ascii=False
para conservar caracteres especiales. - Si trabajas con archivos, utiliza
json.load()
yjson.dump()
para leer y escribir directamente desde y hacia archivos. - Verifica siempre que el JSON sea válido antes de cargarlo.
Ejemplo: Leer y escribir archivos JSON
# Escribir un diccionario a un archivo JSON
with open(datos.json, w, encoding=utf-8) as f:
json.dump(datos, f, ensure_ascii=False, indent=4)
# Leer desde un archivo JSON
with open(datos.json, r, encoding=utf-8) as f:
datos_leidos = json.load(f)
print(datos_leidos)
Resumen: ¿Cómo trabajar con JSON en Python (json.loads() y json.dumps())?
En conclusión, trabajar con JSON en Python es un proceso sencillo y potente gracias al módulo json
. Recuerda que:
json.loads()
convierte una cadena JSON en un objeto de Python.json.dumps()
convierte un objeto de Python en una cadena JSON.
Dominar estas funciones te permitirá integrar fácilmente tu aplicación Python con APIs y servicios modernos que utilicen JSON como formato de datos.