Convalida pidantica

Coercizione del tipo e validazione del modello.

Prova nell'editor

Panoramica

Pydantic consente alle classi dati Python di mutare automaticamente configurazioni di rete fondamentalmente non tipizzate in rappresentazioni tipizzate.

Ciò protegge lo stato del sistema utilizzando vincoli di tipo robusti.

Codice e output di esecuzione

Dichiara uno schema rigoroso Modello utente per i payload di convalida.

from 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))
Uscita terminale
--- 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
}

Implementazione passo dopo passo

  • Protezione degli endpoint API
  • Convalida dello schema di configurazione
  • Interfacciamento con database

Domande frequenti

Argomenti correlati