https://a.storyblok.com/f/270183/1368x665/5a86bfc7c5/25mar_dev-blog_json-python.jpg

Cómo trabajar con JSON en Python: Guía para principiantes

Publicado el March 18, 2025

Tiempo de lectura: 2 minutos

JSON (JavaScript Object Notation) se utiliza habitualmente cuando se trabaja con API para intercambiar datos entre aplicaciones web y servidores. Es ligero, legible y fácil de analizar.

En Python, trabajar con JSON es sencillo, gracias a la función incorporada json incorporado.

¿Listo para trabajar con JSON en Python? ¡Vamos a empezar!

¿Qué es JSON?

JSON es un formato basado en texto que representa datos estructurados mediante pares clave-valor. He aquí un ejemplo sencillo de JSON tomado de la respuesta de una de nuestras API de red:

{
    "phoneNumber": "+99012345678",
    "location": {
        "latitude": 50.735851,
        "longitude": 7.10066,
    },
    "is_active": true
}

JSON admite varios tipos de datos:

  • Cadenas (por ejemplo, "+99012345678")

  • Numbers (por ejemplo, 25, 50,7358)

  • Booleanos (verdadero o falso)

  • Nulo (nulo)

  • Objetos (pares clave-valor, similares a los diccionarios de Python)

  • Matrices (listas de valores, similares a las listas de Python)

Cómo trabajar con JSON en Python

Python proporciona una función json integrado en su biblioteca estándar, que permite a los desarrolladores trabajar con datos JSON. Puedes importarlo usando:

import json

Analizar datos JSON

Los datos JSON suelen convertirse en diccionarios de Python. Para analizar y convertir datos JSON representados como una cadena, utilice json.loads()

json_data = '{"name": "Maria", "age": 25, "city": "Madrid"}' # string
parsed_data = json.loads(json_data) # Python dict

print(parsed_data["name"]) # prints “Maria”

json.loads() será el método que utilizarás para analizar el JSON de las respuestas de la API.

Convertir objetos Python a JSON

Para convertir (o serializar) objetos Python en una cadena con formato JSON, utilice json.dumps()

python_dict = {"name": "John", "city": "London"}
json_string = json.dumps(python_dict)

print(json_string) # prints '{"name": "John", "city": "London"}'

También puede formatear la salida JSON con sangría para facilitar la lectura:

formatted_json = json.dumps(python_dict, indent=4)
print(formatted_json)

Por supuesto, los formatos JSON inválidos lanzarán una excepción. Debemos manejar estos errores usando el manejo de excepciones normal de Python:

try:
    invalid_json = '{"name": "John", "age": 30,}'  # Incorrect JSON
    parsed_data = json.loads(invalid_json)
except json.JSONDecodeError as e:
    print("Error decoding JSON:", e)

Leer y escribir archivos JSON

Para escribir datos JSON en un archivo, utilice json.dump():

with open("data.json", "w") as file:
    json.dump(python_dict, file, indent=4)

Para leer datos JSON de un archivo, utilice json.load():

with open("data.json", "r") as file:
    data = json.load(file) # data is a Python dict
    print(data)

Serializar Otros Tipos de Datos Python a JSON

En los ejemplos anteriores, hemos visto cómo serializar diccionarios Python. Sin embargo, Python permite serializar otros tipos de datos en formato JSON:

Las listas se admiten de forma natural en la serialización JSON:

list_data = ["one", "two", "three"]
json_list = json.dumps(list_data)
print(json_list)  #  ["one", "two", "three"]

Las tuplas pueden convertirse en listas JSON:

tuple_data = ("one", "two", "three")
json_tuple = json.dumps(tuple_data)
print(json_tuple)  #  ["one", "two", "three"]

Los conjuntos de Python deben convertirse en listas antes de la serialización:

set_data = {1, 2, 3, 4}
json_set = json.dumps(list(set_data))
print(json_set)  # [1, 2, 3, 4]

Por último, para serializar objetos personalizados, debemos implementar una función codificadora personalizada:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

def person_encoder(obj):
    if isinstance(obj, Person):
        return {"name": obj.name, "age": obj.age}
    raise TypeError("Object of type Person is not JSON serializable")

person = Person("Maria", 30)
json_person = json.dumps(person, default=person_encoder)
print(json_person) # {"name": "Alice", "age": 30}

Conclusión

A diferencia de otros formatos (XML, ¡te estamos mirando!), trabajar con JSON en Python es sencillo y eficiente. No necesitamos dependencias extra ya que la librería estándar de Python incluye la librería json de Python. Dominar JSON te ayudará a mejorar tus integraciones API, especialmente cuando analices las respuestas API.

¿Tienes alguna pregunta o algo que compartir? Únete a la conversación en Slack de la comunidad de Vonagey mantente actualizado con el Boletín para desarrolladoressíguenos en X (antes Twitter)suscríbete a nuestro canal de YouTube para ver tutoriales en video, y sigue la página de página para desarrolladores de Vonage en LinkedInun espacio para que los desarrolladores aprendan y se conecten con la comunidad. Mantente conectado, comparte tu progreso y entérate de las últimas noticias, consejos y eventos para desarrolladores.

Compartir:

https://a.storyblok.com/f/270183/405x400/2b811a162d/alvaro-navarro.jpg
Alvaro NavarroPromotor senior

Alvaro es un defensor de los desarrolladores en Vonage, centrándose en las API de red. Es un apasionado de la experiencia del desarrollador, las API y el código abierto. Fuera del trabajo, a menudo se le puede encontrar explorando tiendas de cómics, asistiendo a festivales de ciencia ficción y terror o haciendo cosas con esos famosos pequeños bloques de construcción de plástico.