Saltar a contenido

Intercambio de Datos: CSV y JSON

En el mundo real, los datos rara vez vienen en simples archivos de texto .txt. Normalmente, trabajamos con estructuras que permiten organizar la información en tablas o jerarquías complejas. Python incluye módulos nativos para manejar estos formatos sin necesidad de instalar librerías externas.


1. CSV (Comma Separated Values)

El formato CSV representa datos tabulares. Cada línea del archivo es una fila de la tabla, y cada valor está separado por una coma (u otro delimitador como ;).

El módulo csv

Python nos ofrece dos formas de leer estos archivos: * csv.reader: Lee cada fila como una lista de strings. * csv.DictReader: Es la forma preferida, ya que lee cada fila como un diccionario, usando los encabezados de la primera columna como llaves. Esto hace que el código sea mucho más legible.


2. JSON (JavaScript Object Notation)

JSON es el formato estándar para enviar datos a través de internet. Su estructura es casi idéntica a los diccionarios y listas de Python, lo que lo hace extremadamente fácil de integrar.

Conceptos Clave: Serialización y Deserialización

  • Serialización (dump / dumps): Convertir un objeto de Python (diccionario/lista) a una cadena de texto JSON para enviarlo o guardarlo.
  • Deserialización (load / loads): Convertir una cadena de texto JSON recibida en un objeto de Python para poder manipularlo.

¿Cuándo usar cada uno?

Característica CSV JSON
Estructura Tabular (Filas y Columnas) Jerárquica (Árboles/Anidada)
Uso común Excel, Data Science, Reportes APIs Web, Configuración de Apps
Complejidad Solo datos planos Permite listas dentro de diccionarios

Reto: Procesador de Usuarios

Imagina que recibes un dato en formato JSON desde una API web y necesitas extraer información específica para guardarla.

Instrucciones: 1. Importa el módulo json. 2. Tienes una cadena llamada datos_api = '{"id": 101, "nombre": "Santi", "rol": "Admin"}'. 3. Usa json.loads() para convertir esa cadena en un diccionario llamado usuario. 4. Extrae el valor de la clave 'nombre' y guárdalo en la variable nombre_usuario. 5. Modifica el diccionario agregando una clave 'status' con el valor 'online'. 6. Convierte el diccionario de nuevo a texto JSON usando json.dumps() y guárdalo en la variable json_final.

# Procesa el JSON de la API: