typestar

Modelos anidados en Python

Modelos dentro de modelos, y listas de ellos, validados hasta el fondo.

from pydantic import BaseModel, ValidationError


class Paso(BaseModel):
    idx: int
    title: str


class Tour(BaseModel):
    slug: str
    steps: list[Paso] = []


tour = Tour(slug="basics", steps=[{"idx": 0, "title": "Variables"},
                                  {"idx": 1, "title": "Cadenas"}])
print(len(tour.steps), tour.steps[0].title)
print(tour.model_dump())

try:
    Tour(slug="x", steps=[{"idx": "uno", "title": "mal"}])
except ValidationError as exc:
    print(exc.errors()[0]["loc"])

Cómo funciona

  1. Un tipo de modelo anidado valida el dict que recibe.
  2. list[Model] valida cada elemento.
  3. Los errores reportan la ruta completa hasta el campo culpable.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
22
Caracteres a escribir
444
Tokens
161
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 92 segundos.

Escribe este fragmento

Paso 4 de 5 en Modelos de Pydantic; paso 4 de 19 en Servicios web y acceso a datos.

← Anterior Siguiente →