Pour commencer, vous devez installer Pydantic. Vous pouvez le faire via pip :
pip install pydanticUn modèle Pydantic est une classe qui hérite de BaseModel. Vous définissez les champs de votre modèle en utilisant des annotations de type.
from pydantic import BaseModel
class Utilisateur(BaseModel):
id: int
nom: str
email: str
age: intVous pouvez créer une instance de votre modèle en passant un dictionnaire ou des arguments nommés :
utilisateur = Utilisateur(id=1, nom="Jean Dupont", email="jean.dupont@example.com", age=30)Pydantic valide automatiquement les données lorsque vous créez une instance. Si les données ne correspondent pas aux types définis, une exception ValidationError est levée.
from pydantic import ValidationError
try:
utilisateur = Utilisateur(id="un", nom="Jean Dupont", email="jean.dupont@example.com", age=30)
except ValidationError as e:
print(e)Vous pouvez accéder aux données de l'instance comme des attributs normaux :
print(utilisateur.nom) # Output: Jean DupontVous pouvez convertir une instance de modèle en dictionnaire :
utilisateur_dict = utilisateur.dict()
print(utilisateur_dict)Pydantic permet également de convertir un modèle en JSON :
utilisateur_json = utilisateur.json()
print(utilisateur_json)Pydantic supporte de nombreux types de champs avancés, tels que EmailStr, Url, UUID, etc. Vous pouvez également définir des champs optionnels et des valeurs par défaut.
from pydantic import EmailStr
from typing import Optional
class Utilisateur(BaseModel):
id: int
nom: str
email: EmailStr
age: Optional[int] = NoneVous pouvez ajouter des validateurs personnalisés à vos modèles en utilisant le décorateur @validator.
from pydantic import validator
class Utilisateur(BaseModel):
id: int
nom: str
email: EmailStr
age: int
@validator('age')
def verifier_age(cls, age):
if age < 0:
raise ValueError("L'âge ne peut pas être négatif")
return agePydantic permet également de définir des modèles imbriqués pour représenter des structures de données complexes.
class Adresse(BaseModel):
rue: str
ville: str
code_postal: str
class Utilisateur(BaseModel):
id: int
nom: str
email: EmailStr
age: int
adresse: AdressePydantic est un outil puissant pour la validation des données en Python. Il est facile à utiliser et s'intègre bien avec d'autres bibliothèques comme FastAPI pour la création d'API web. Avec Pydantic, vous pouvez garantir que vos données sont toujours valides et conformes à votre schéma, ce qui réduit les erreurs et améliore la robustesse de votre code.