Frogames Python Expert
Cursos Premium

CSV y JSON

Cualquier programa de IA necesita leer y guardar datos. CSV y JSON son los dos formatos universales del mundo de los datos — apréndelos de una vez y te servirán para siempre.

1. Trabajar con CSV

Un fichero CSV (Comma-Separated Values) es simplemente una tabla guardada como texto plano, con comas como separadores. Python lo maneja con el módulo csv de la Standard Library o con Pandas.

Leer un CSV

import csv

with open("alumnos.csv", "r", encoding="utf-8") as f:
    lector = csv.DictReader(f)
    for fila in lector:
        print(fila["nombre"], fila["nota"])

Escribir un CSV

import csv

alumnos = [
    {"nombre": "Ana", "nota": 9.5},
    {"nombre": "Carlos", "nota": 7.8},
]

with open("resultados.csv", "w", newline="", encoding="utf-8") as f:
    escritor = csv.DictWriter(f, fieldnames=["nombre", "nota"])
    escritor.writeheader()
    escritor.writerows(alumnos)
Usa siempre encoding="utf-8" para evitar problemas con tildes y caracteres especiales del español. En Windows, a veces necesitarás "utf-8-sig" para compatibilidad con Excel.

2. Trabajar con JSON

JSON (JavaScript Object Notation) es el formato de intercambio de datos de la web. Las respuestas de APIs, los ficheros de configuración y los logs de sistemas modernos usan JSON.

Leer JSON

import json

# Desde fichero
with open("config.json", "r", encoding="utf-8") as f:
    config = json.load(f)
    print(config["api_key"])

# Desde un string (típico en respuestas de API)
texto = '{"nombre": "Ana", "edad": 28}'
datos = json.loads(texto)
print(datos["nombre"])  # Ana

Escribir JSON

import json

datos = {
    "modelo": "gpt-4o",
    "temperatura": 0.7,
    "historial": [
        {"rol": "user", "texto": "Hola"},
        {"rol": "assistant", "texto": "¿En qué puedo ayudarte?"}
    ]
}

# Guardar en fichero (indent=2 para que sea legible)
with open("sesion.json", "w", encoding="utf-8") as f:
    json.dump(datos, f, indent=2, ensure_ascii=False)

# Convertir a string
texto_json = json.dumps(datos, indent=2, ensure_ascii=False)
print(texto_json)

3. Pathlib: Rutas de Fichero Modernas

Antes de leer o escribir, necesitas gestionar rutas de fichero. El módulo pathlib es la forma moderna y elegante de hacerlo, compatible con Windows, Mac y Linux sin cambios:

from pathlib import Path

# Ruta al directorio actual
base = Path(__file__).parent

# Construir rutas de forma segura (no concatenación de strings)
datos_dir = base / "datos"
fichero   = datos_dir / "alumnos.csv"

# Comprobar existencia
if fichero.exists():
    print("El fichero existe")

# Crear un directorio si no existe
datos_dir.mkdir(parents=True, exist_ok=True)

# Listar todos los CSV de una carpeta
for csv_file in datos_dir.glob("*.csv"):
    print(csv_file.name)

4. Caso Práctico: Guardar Resultados de una IA

Combina todo lo anterior: llama a una API, procesa la respuesta y guarda los resultados en JSON para análisis posterior.

import json
import requests
from pathlib import Path
from datetime import datetime

def consultar_y_guardar(pregunta):
    """Consulta una IA y guarda el resultado en un fichero JSON."""
    # Simulamos la respuesta (en producción sería requests.post a OpenAI)
    respuesta = {
        "pregunta": pregunta,
        "respuesta": f"Respuesta generada para: {pregunta}",
        "timestamp": datetime.now().isoformat(),
        "modelo": "gpt-4o-mini"
    }

    # Guardar en fichero con timestamp único
    salida = Path("resultados") / f"sesion_{datetime.now().strftime('%Y%m%d_%H%M%S')}.json"
    salida.parent.mkdir(exist_ok=True)

    with open(salida, "w", encoding="utf-8") as f:
        json.dump(respuesta, f, indent=2, ensure_ascii=False)

    print(f"Guardado en: {salida}")
    return respuesta

consultar_y_guardar("¿Qué es el aprendizaje supervisado?")

¿Listo para convertirte en un Maestro?

Potencia tu carrera con el Máster Completo: Python de la A a la Z. Domina Ciencia de Datos, ML y Deep Learning.

Ver ahora