Serialización en Pydantic con model_dump resuelve un problema frecuente en proyectos Python: Convierte modelos validados en diccionarios o JSON mediante un contrato explícito. Esta guía explica el mecanismo, presenta un ejemplo ejecutable y marca los límites que evitan una implementación frágil.

Concepto y caso de uso

model_dump devuelve un diccionario; mode json convierte valores a tipos serializables. model_dump_json genera texto JSON con las reglas del modelo.

Para repasar los fundamentos relacionados, consulta también la guía de Pydantic. La integración es más simple cuando cada función recibe dependencias y datos explícitamente en lugar de depender de estado global.

Ejemplo práctico

from datetime import datetime
from pydantic import BaseModel, Field, field_serializer

class UserOut(BaseModel):
    id: int
    display_name: str = Field(serialization_alias="name")
    created_at: datetime

    @field_serializer("created_at")
    def serialize_date(self, value: datetime) -> str:
        return value.isoformat()

payload = user.model_dump(mode="json", by_alias=True)

Crea modelos de salida separados para fronteras públicas. Usa include y exclude como protección adicional, no como sustituto del contrato.

Decisiones importantes

La elección correcta depende del contrato público, del volumen y del comportamiento ante fallos.

Considera concurrencia, entradas vacías y fallos parciales. Documenta cada límite que afecte a consumidores y usa nombres que expresen intención.

Errores frecuentes

El ejemplo mínimo no sustituye límites, manejo de errores y observabilidad. Serializar un modelo interno puede exponer hashes o flags administrativas. Los aliases inconsistentes rompen consumidores silenciosamente.

Evita capturar excepciones sin contexto o devolver resultados parciales como si fueran completos. Un fallo explícito suele ser más seguro que datos silenciosamente incorrectos.

Cómo validar

Valida el comportamiento y no solo el camino feliz. Prueba el payload exacto, fechas, enums, aliases, opcionales y la ausencia deliberada de información sensible.

La documentación oficial, consultada el 28 de julio de 2026, detalla la API y debe ser la referencia para cambios futuros.