Introduzione a Pydantic in Python

Pydantic è una libreria Python per la validazione dei dati e la gestione di modelli tramite l'uso dei data class-like basati su tipi statici. È ampiamente utilizzata in applicazioni moderne, in particolare in contesti come FastAPI, dove la validazione automatica dei dati in input è fondamentale.

Perché usare Pydantic

  • Validazione automatica dei dati in input e output
  • Parsing intelligente da formati comuni come JSON e dizionari Python
  • Supporto completo per i tipi dell'annotazione standard di Python
  • Interoperabilità con librerie moderne

Installazione

pip install pydantic

Un esempio base

Ecco un semplice esempio di utilizzo di Pydantic per definire un modello utente:


from pydantic import BaseModel

class User(BaseModel):
    id: int
    name: str
    email: str

user = User(id=1, name="Mario Rossi", email="mario@example.com")
print(user)

Validazione automatica

Se i dati forniti non sono conformi ai tipi specificati, Pydantic solleva automaticamente un'eccezione:


from pydantic import ValidationError

try:
    User(id="non un intero", name="Anna", email="anna@example.com")
except ValidationError as e:
    print(e)

Parsing da dizionario

Pydantic può convertire automaticamente strutture dati complesse, come stringhe numeriche in interi:


data = {"id": "123", "name": "Luca", "email": "luca@example.com"}
user = User(**data)
print(user.id)  # 123 come intero

Modelli annidati

Pydantic supporta la composizione di modelli:


class Address(BaseModel):
    city: str
    zip_code: str

class UserWithAddress(BaseModel):
    name: str
    address: Address

user = UserWithAddress(name="Giulia", address={"city": "Milano", "zip_code": "20100"})
print(user.address.city)

Conclusione

Pydantic fornisce un approccio elegante, efficiente e sicuro per la validazione e la gestione dei dati strutturati in Python. Il suo utilizzo è consigliato in qualsiasi progetto in cui la coerenza dei dati sia un requisito critico.

Torna su