This media is not supported in your browser
VIEW IN TELEGRAM
🐍 Почему ошибки валидации в Python иногда так сложно найти
Чем глубже вложена структура данных, тем сложнее понять, где именно произошла ошибка.
Если использовать обычные dataclass, вы чаще всего увидите только значение, которое не прошло проверку — но не путь к полю, где возникла проблема.
В сложных вложенных структурах это превращает отладку в настоящую боль.
Pydantic решает эту проблему.
Он показывает полный путь до поля, которое вызвало ошибку — от корневой модели до конкретного атрибута.
В результате сразу понятно, где искать проблему.
Пример:
Ошибка будет выглядеть так:
То есть Pydantic сразу показывает:
А не просто сообщает, что «где-то внутри данных ошибка».
Для сложных JSON, API-ответов и вложенных моделей это сильно упрощает дебаг.
#Python #Pydantic #Backend #DataValidation
🐍 Python полезные ресурсы 🚀Max
@pythonl
Чем глубже вложена структура данных, тем сложнее понять, где именно произошла ошибка.
Если использовать обычные 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
❤12👍12🔥4