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)
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.