Validação Pydantic
Coerção de tipo e validação de modelo.
Visão geral
Pydantic permite que classes de dados Python transformem automaticamente configurações de rede fundamentalmente não tipadas em representações digitadas.
Isso protege o estado do sistema usando restrições de tipo robustas.
Saída de código e execução
Declara um modelo de usuário de esquema estrito para cargas úteis de validação.
models.py
Experimente no 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))Saída 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
}Implementação passo a passo
- Proteção de endpoint de API
- Validação do esquema de configuração
- Interface de banco de dados