Каково основное назначение библиотеки Pydantic в Python

Ответ

Pydantic — это библиотека для парсинга и валидации данных в Python, которая использует стандартные аннотации типов. Она гарантирует, что данные соответствуют определённой структуре (модели), и автоматически преобразует их в нужные типы.

Ключевые задачи, которые решает Pydantic:

  1. Валидация данных: Автоматическая проверка типов и ограничений (например, min_length, gt). Если данные не соответствуют модели, возбуждается исключение ValidationError с подробным описанием ошибки.
  2. Сериализация и десериализация: Простое преобразование сложных Python-объектов в словари/JSON и обратно.
  3. Генерация схем данных: Создание 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 код становится более надёжным, читаемым и менее подверженным ошибкам, связанным с некорректными типами данных.