Чем глубже вложена структура данных, тем сложнее понять, где именно произошла ошибка.
Если использовать обычные dataclass, вы чаще всего увидите только значение, которое не прошло проверку — но не путь к полю, где возникла проблема.
В сложных вложенных структурах это превращает отладку в настоящую боль.
Pydantic решает эту проблему.
Он показывает полный путь до поля, которое вызвало ошибку — от корневой модели до конкретного атрибута.
В результате сразу понятно, где искать проблему.
Пример:
from pydantic import BaseModel, Field
class Address(BaseModel):
zip_code: str = Field(pattern=r"^\d{5}$")
class Customer(BaseModel):
name: str
address: Address
customer = Customer(
name="Alice",
address={"zip_code": "9ABC1"}
)
Ошибка будет выглядеть так:
ValidationError: address.zip_code
String should match pattern '^\d{5}$'
То есть Pydantic сразу показывает:
address.zip_code
А не просто сообщает, что «где-то внутри данных ошибка».
Для сложных JSON, API-ответов и вложенных моделей это сильно упрощает дебаг.
#Python #Pydantic #Backend #DataValidation
🐍 Python полезные ресурсы 🚀Max
@pythonl
