Validación Pydantica
Coerción de tipos y validación de modelos.
Descripción general
Pydantic permite que las clases de datos de Python transformen automáticamente configuraciones de red fundamentalmente sin tipo en representaciones con tipo.
Esto protege el estado del sistema mediante restricciones de tipo robustas.
Código y salida de ejecución
Declara un modelo de usuario de esquema estricto para cargas útiles de validación.
models.py
Pruébelo en el editorfrom pydantic import BaseModel, EmailStr, Field
from typing import List, Optional
import json
class User(BaseModel):
id: int
name: str = Field(min_length=2)
email: EmailStr
tags: List[str] = []
is_active: bool = True
# Simulating an API response with mixed types
incoming_data = {
"id": "123", # string gets coerced to int
"name": "Alice",
"email": "alice@example.com",
"tags": ("python", "developer") # tuple gets coerced to list
}
# Validate and instantiate
user = User(**incoming_data)
print("--- Validated Pydantic Model ---")
print(repr(user))
print("\n--- Exported to JSON ---")
print(user.model_dump_json(indent=2))Salida terminal
--- Validated Pydantic Model ---
User(id=123, name='Alice', email='alice@example.com', tags=['python', 'developer'], is_active=True)
--- Exported to JSON ---
{
"id": 123,
"name": "Alice",
"email": "alice@example.com",
"tags": [
"python",
"developer"
],
"is_active": true
}Implementación paso a paso
- Protección de terminales API
- Validación del esquema de configuración
- Interfaz de base de datos