Python:
Trabajando con JSON
Cómo hacerlo:
La biblioteca integrada json
de Python simplifica el proceso de codificación (convertir objetos de Python a JSON) y decodificación (convertir JSON a objetos de Python). Así es como puedes usarla:
Codificando objetos Python a JSON:
import json
datos = {
"nombre": "John Doe",
"edad": 30,
"esEmpleado": True,
"direcciones": [
{"ciudad": "Nueva York", "codigoPostal": "10001"},
{"ciudad": "San Francisco", "codigoPostal": "94016"}
]
}
cadena_json = json.dumps(datos, indent=4)
print(cadena_json)
Salida:
{
"nombre": "John Doe",
"edad": 30,
"esEmpleado": true,
"direcciones": [
{
"ciudad": "Nueva York",
"codigoPostal": "10001"
},
{
"ciudad": "San Francisco",
"codigoPostal": "94016"
}
]
}
Decodificando JSON a objetos Python:
cadena_json = '''
{
"nombre": "John Doe",
"edad": 30,
"esEmpleado": true,
"direcciones": [
{
"ciudad": "Nueva York",
"codigoPostal": "10001"
},
{
"ciudad": "San Francisco",
"codigoPostal": "94016"
}
]
}
'''
datos = json.loads(cadena_json)
print(datos)
Salida:
{
'nombre': 'John Doe',
'edad': 30,
'esEmpleado': True,
'direcciones': [
{'ciudad': 'Nueva York', 'codigoPostal': '10001'},
{'ciudad': 'San Francisco', 'codigoPostal': '94016'}
]
}
Trabajando con bibliotecas de terceros:
Para manejar JSON complejo, como la validación de esquemas o el análisis de archivos JSON directamente desde URLs, bibliotecas como requests
para solicitudes HTTP y jsonschema
para validación pueden ser útiles.
Ejemplo con requests
para analizar JSON desde una URL:
import requests
respuesta = requests.get('https://api.ejemplo.com/datos')
datos = respuesta.json()
print(datos)
Este fragmento obtiene datos JSON de una URL dada y los convierte directamente en un objeto Python.
Usando jsonschema
para validar JSON:
Primero, instala la biblioteca mediante pip:
pip install jsonschema
Luego, úsala de la siguiente manera:
from jsonschema import validate
import jsonschema
esquema = {
"tipo": "objeto",
"propiedades": {
"nombre": {"tipo": "cadena"},
"edad": {"tipo": "número"},
"esEmpleado": {"tipo": "booleano"},
},
"requerido": ["nombre", "edad", "esEmpleado"]
}
# Suponiendo que `datos` es un diccionario obtenido de la decodificación de JSON
try:
validate(instance=datos, schema=esquema)
print("Datos JSON válidos.")
except jsonschema.exceptions.ValidationError as err:
print("Error de validación:", err)
Este ejemplo valida tu diccionario Python (obtenido de datos JSON decodificados) contra un esquema predefinido, asegurando que los datos se ajusten a los formatos y tipos esperados.