Исследуйте улучшенные возможности проверки данных Pydantic V2

Раскройте новые возможности проверки данных с помощью Pydantic V2

Узнайте о новых функциях и синтаксисах Pydantic V2

Изображение от jackmac34 на Pixabay

Проверка данных является краеугольным камнем для надежных приложений в постоянно развивающейся области разработки данных и программного обеспечения. Обеспечение чистоты и точности данных необходимо не только для надежности приложений, но и для пользовательского опыта.

Pydantic – самая популярная библиотека проверки данных для Python. Ядро новой версии (V2) Pydantic было переписано на Rust и имеет гораздо лучшую производительность по сравнению с предыдущей версией. Кроме того, были внесены некоторые значительные улучшения в функциональность, такие как поддержка строгого режима, проверка без модели, очистка пространства имен модели и т. д.

В этом посте мы подробно рассмотрим последние функции и улучшенную производительность мощных возможностей проверки данных Pydantic, которые предлагают разработчикам комплексный набор инструментов для работы с данными любого типа.

Подготовка

Для выполнения примеров в этом посте у вас должна быть установлена современная версия Python (≥ 3.10) и последняя версия Pydantic V2. Рекомендуется управлять разными версиями Python и библиотек с помощью виртуальной среды conda:

conda create -n pydantic2 python=3.11conda activate pydantic2pip install -U pydantic

Основное использование

Обычно с использованием Pydantic нам нужно сначала определить схему наших данных с помощью моделей, которые являются просто классами, наследующими от BaseModel. В этих моделях типы данных каждого поля определяются с помощью подсказок типов.

from pydantic import BaseModelclass ComputerModel(BaseModel):    brand: str    cpu: str    storage: int    ssd: bool = True

Чтобы использовать эту модель для проверки, мы можем создать экземпляр, передав значения для каждого поля:

input_dict = {"brand": "HP", "cpu": "Intel i7 1265U", "storage": "256"}computer = ComputerModel(**input_dict)print(computer)# brand='HP' cpu='Intel i7 1265U' storage=256 ssd=True

Строковые данные для поля storage приводятся к целому числу, которое определено в модели.