Convierte respuestas complejas de APIs modernas, que tienen múltiples niveles de profundidad, en tablas planas estructuradas.
Convert complex modern API responses with multiple depth levels into structured flat tables.
Este ejercicio es solo para aprendizaje y pruebas. No ejecutes scripts contra datos reales, ambientes de producción, APIs externas, portales con login, datos sensibles, sistemas críticos o repositorios empresariales sin autorización, respaldos, pruebas previas, permisos mínimos, control de cambios y cumplimiento de los protocolos de ciberseguridad de tu organización.
This exercise is for learning and testing only. Do not run scripts against real data, production environments, external APIs, login portals, sensitive data, critical systems, or enterprise repositories without authorization, backups, prior testing, least-privilege permissions, change control, and compliance with your organization's cybersecurity protocols.
Usar pandas.json_normalize para convertir objetos JSON anidados en columnas tabulares listas para análisis o exportación.
Use pandas.json_normalize to convert nested JSON objects into tabular columns ready for analysis or export.
| id | user.nombre | user.area |
|---|---|---|
| 1 | Alex | IT |
| 2 | Maria | Finance |
import pandas as pd
api_data = [{"id": 1, "user": {"nombre": "Alex", "area": "IT"}}]
df = pd.json_normalize(api_data)
# Genera columna: user.area | Generates column: user.area| id | user.nombre | user.area |
|---|---|---|
| 1 | Alex | IT |
| 2 | Maria | Finance |
# ==========================================================
# Python Advanced Topic 10
# Flattening Nested JSON
# ==========================================================
import pandas as pd
api_data = [
{"id": 1, "user": {"nombre": "Alex", "area": "IT"}, "status": "active"},
{"id": 2, "user": {"nombre": "Maria", "area": "Finance"}, "status": "active"},
{"id": 3, "user": {"nombre": "John", "area": "HR"}, "status": "inactive"}
]
# Flatten nested JSON into columns
df = pd.json_normalize(api_data)
# Clean column names for CSV / database use
df.columns = [c.replace(".", "_") for c in df.columns]
df.to_csv("flattened_api_data.csv", index=False)
print(df)id status user_nombre user_area 0 1 active Alex IT 1 2 active Maria Finance 2 3 inactive John HR
El aplanamiento de JSON convierte datos semiestructurados en tablas limpias, haciendo posible analizarlos con herramientas tradicionales.
JSON flattening turns semi-structured data into clean tables, making it possible to analyze with traditional tools.