
Compartir:
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.
Cómo trabajar con JSON en Python: Guía para principiantes
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:
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.