Ответ
Pydantic — это библиотека для парсинга и валидации данных в Python, которая использует стандартные аннотации типов. Она гарантирует, что данные соответствуют определённой структуре (модели), и автоматически преобразует их в нужные типы.
Ключевые задачи, которые решает Pydantic:
- Валидация данных: Автоматическая проверка типов и ограничений (например,
min_length,gt). Если данные не соответствуют модели, возбуждается исключениеValidationErrorс подробным описанием ошибки. - Сериализация и десериализация: Простое преобразование сложных Python-объектов в словари/JSON и обратно.
- Генерация схем данных: Создание JSON Schema на основе моделей, что активно используется в фреймворках вроде FastAPI для автоматической генерации интерактивной документации API (Swagger/OpenAPI).
Пример:
from pydantic import BaseModel, ValidationError, constr
class User(BaseModel):
id: int
name: constr(min_length=2) # Строка минимум 2 символа
email: str
# 1. Успешная валидация
data_valid = {"id": 1, "name": "Alice", "email": "alice@example.com"}
user = User(**data_valid)
print(user.model_dump_json())
# Вывод: {"id":1,"name":"Alice","email":"alice@example.com"}
# 2. Неуспешная валидация
try:
data_invalid = {"id": "not-an-int", "name": "Bob", "email": "bob@example.com"}
User(**data_invalid)
except ValidationError as e:
print(e)
# Вывод будет содержать ошибку о том, что 'id' должен быть целым числом
Благодаря Pydantic код становится более надёжным, читаемым и менее подверженным ошибкам, связанным с некорректными типами данных.