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.