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
- Un tipo de modelo anidado valida el dict que recibe.
list[Model]valida cada elemento.- Los errores reportan la ruta completa hasta el campo culpable.
Palabras clave y builtins usados aquí
asclassexceptintlenlistprintstrtry
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.
Paso 4 de 5 en Modelos de Pydantic; paso 4 de 19 en Servicios web y acceso a datos.