Pydantic is a data validation library using Python type hints.
1from pydantic import BaseModel, EmailStr, Field, validator2from datetime import datetime3from typing import Optional45class User(BaseModel):6 name: str = Field(..., min_length=1, max_length=100)7 email: EmailStr8 age: int = Field(ge=0, le=150)9 created_at: datetime = Field(default_factory=datetime.now)10 bio: Optional[str] = None1112 @validator("name")13 def name_must_be_title_case(cls, v):14 return v.title()1516 class Config:17 orm_mode = True # Works with ORMs1819# Validation happens automatically20user = User(name="alice", email="alice@example.com", age=25)21print(user.dict()) # Serialized to dict22print(user.json()) # Serialized to JSON2324# Error handling25from pydantic import ValidationError26try:27 User(name="", email="invalid")28except ValidationError as e:29 print(e.errors()) # List of validation errors
Benefits: