CSV/JSON y validación

Objetivo

Leer datos sin perder tipos/errores silenciosamente.

Explicación

csv.DictReader es suficiente para ficheros pequeños; pandas simplifica análisis tabular. Antes de transformar, valida cabeceras, claves y tipos que tu pipeline necesita. Python se usa como pegamento para automatizar ingestas, validaciones y APIs. En producción importa tanto el resultado como la forma de fallar: timeouts, logs, códigos de salida, reintentos limitados y secretos fuera del código. Para trabajar CSV/JSON y validación de forma profesional, no te quedes con el ejemplo: identifica la entrada, ejecuta el caso base, provoca al menos un caso incorrecto y compara el resultado con un control independiente. En este laboratorio el criterio de salida es concreto: El script termina con código distinto de cero y un mensaje accionable. La verificación principal será: Ejecuta echo $? (Linux/macOS) o comprueba excepción en terminal. Si no puedes explicar por qué pasa esa comprobación, vuelve al paso anterior antes de continuar.

Contexto profesional

Python se usa como pegamento para automatizar ingestas, validaciones y APIs. En producción importa tanto el resultado como la forma de fallar: timeouts, logs, códigos de salida, reintentos limitados y secretos fuera del código.

Ejemplo real

import csv
with open("ecommerce_orders.csv",encoding="utf-8") as f:
 rows=list(csv.DictReader(f))
assert all(r["order_id"] for r in rows)

Archivos o datos de entrada

  • data/ecommerce_orders.csv
  • python/ingest_validate.py

Práctica guiada

Ejecuta ingest_validate.py y revisa el resumen.

Laboratorio paso a paso

  • Prepara el entorno y localiza los datos/archivos de entrada: data/ecommerce_orders.csv, python/ingest_validate.py. Antes de modificar nada, anota el número de filas, columnas u objetos que esperas usar.
  • Reproduce el ejemplo real de la lección y guarda la salida. No avances hasta poder explicar qué hace cada bloque relacionado con «CSV/JSON y validación».
  • Ejecuta la práctica guiada: Ejecuta ingest_validate.py y revisa el resumen. Documenta el comando, consulta o acción exacta y el resultado obtenido.
  • Resuelve el reto sin mirar la solución: Añade una fila con amount=»abc» y mejora el error para indicar fila y columna. Si falla, registra el mensaje de error y formula una hipótesis antes de cambiar código.
  • Compara tu resultado con el criterio esperado: El script termina con código distinto de cero y un mensaje accionable. Después ejecuta la comprobación: Ejecuta echo $? (Linux/macOS) o comprueba excepción en terminal.
  • Provoca deliberadamente un caso problemático relacionado con este error frecuente: except Exception genérico puede esconder bugs de programación.. Comprueba que sabes detectarlo y corregirlo.

Reto sin ayuda

Añade una fila con amount=»abc» y mejora el error para indicar fila y columna.

Resultado esperado

El script termina con código distinto de cero y un mensaje accionable.

Cómo verificarlo

Ejecuta echo $? (Linux/macOS) o comprueba excepción en terminal.

Checklist de validación

  • El resultado cumple: El script termina con código distinto de cero y un mensaje accionable.
  • Has ejecutado esta verificación y puedes explicar el resultado: Ejecuta echo $? (Linux/macOS) o comprueba excepción en terminal.
  • Has probado al menos un caso límite o dato inválido y el comportamiento es explícito, no silencioso.
  • Puedes repetir la práctica desde cero sin copiar la solución y dejar evidencia (consulta, commit, captura o salida de consola).
Pista específica

Atrapa ValueError sólo alrededor de la conversión que esperas que falle.

Solución paso a paso

1) Empieza reproduciendo el caso base con los datos indicados. 2) Aplica esta estrategia específica: Incluye row_number y valor recibido en el mensaje. 3) Usa como referencia técnica el ejemplo de la lección (import csv with open(«ecommerce_orders.csv»,encoding=»utf-8″) as f: rows=list(csv.DictReader(f)) assert all(r[«order_id»] for r in rows)). 4) Ejecuta la verificación: Ejecuta echo $? (Linux/macOS) o comprueba excepción en terminal. 5) Compara con el resultado esperado: El script termina con código distinto de cero y un mensaje accionable. 6) Repite el reto cambiando un dato o condición para demostrar que entiendes el comportamiento y no has obtenido el resultado por casualidad. Si aparece el error «except Exception genérico puede esconder bugs de programación.», corrige la causa antes de continuar; no ocultes el fallo ni cambies el resultado esperado para que la prueba pase.

Errores frecuentes

  • except Exception genérico puede esconder bugs de programación.

Qué debes recordar

Python en data engineering debe producir salidas reproducibles y fallar de forma visible ante datos inválidos.

Preguntas de entrevista

  • ¿Qué errores reintentarías y cuáles harías fallar inmediatamente? Aplícalo concretamente a «CSV/JSON y validación».
  • ¿Cómo harías observable y reproducible este script? Explica qué evidencia enseñarías al revisor.

Siguiente paso

Trabajarás APIs.

Recursos de esta lección

Quiz de la lección

¿Qué hace una validación útil?

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.