Синтаксис:
Простой, но эффективный способ улучшить управление данными с помощью классов данных Pydantic в Python — использовать декоратор классов, с помощью которого мы, по сути, создаем модель того, как должны выглядеть наши данные. Это похоже на предоставление нашим данным четкой структуры. Итак, синтаксис определения класса данных следующий:
сорт название модели ( Базовая модель )
«model_name» представляет имя модели, которую мы хотим создать, а «BaseModel» из Pydantic действует как хранитель, который гарантирует, что данные соответствуют установленным нами правилам и передаются модели в качестве входного параметра. Внутри класса мы определяем, какую информацию должен содержать каждый фрагмент данных. Этот процесс гарантирует, что когда мы создаем экземпляр класса данных, предоставляемая нами информация соответствует тому, что мы определили.
Метод 1: расширенная обработка данных с помощью класса данных Pydantic
Представьте, что мы разрабатываем простое приложение для организации информации о книгах в нашей коллекции. Мы хотим гарантировать, что данные, которые мы собираем для этой цели, являются точными, последовательными и хорошо структурированными. Именно здесь на помощь приходят классы данных Pydantic, которые упрощают и улучшают процесс.
Для начала примера необходимо определить класс данных Pydantic. Итак, мы начнем с определения класса данных Pydantic с именем «Книги», который представляет детали книг. Чтобы определить класс данных для Pydantic, нам нужно убедиться, что все пакеты Pydantic предварительно установлены в проекте.
от пидантический Импортировать Базовая модель
Используя декоратор класса, мы создаем класс Book, унаследованный от BaseModel Pydantic. Внутри класса мы указываем такие атрибуты, как заголовок, автор и Release_year, каждый из которых связан с соответствующим типом данных.
сорт Книга ( Базовая модель ) :заголовок: ул.
автор: ул.
год выпуска: интервал
После создания модели класса мы используем класс данных Pydantic, используя возможности класса данных «Книга» для обработки данных «кино»:
В этом разделе мы имитируем пользователя, который вводит информацию о книге. Модель класса данных «книга» имеет такие атрибуты, как название, автор и год выпуска, с их отличительными типами данных. Итак, в этой части, то есть «входе», мы указываем их значения.
вход '=' {'заголовок' : 'Страдать' ,
'автор' : 'Адам' ,
'год_выпуска' : 2023 год
}
После указания сведений об атрибутах модели книги на входе мы создаем экземпляр «Книга» с предоставленными данными, используя эти сведения; это делается для того, чтобы Pydantic автоматически проверял входные данные на соответствие определенной структуре данных. Если есть какое-либо несоответствие или ошибка, например год выпуска, не являющийся целым числом, или отсутствующее название, Pydantic быстро выдаст сообщение об ошибке вместе с понятным для пользователя объяснением.
пытаться :книга '=' Книга ( ** вход )
Распечатать ( «Подробности книги:» , книга. заголовок , книга. автор , книга. год выпуска )
кроме Исключение как Это:
Распечатать ( 'Ошибка:' , Это )
Для расширенной обработки данных с помощью классов данных Pydantic мы получаем встроенный механизм проверки и согласованности данных. Мы можем включать необязательные поля, значения по умолчанию и сложные вложенные структуры для охвата различных сценариев данных. Это гарантирует, что наши данные остаются организованными и правильно отформатированными.
На этом этапе рассматривается, как классы данных Pydantic предлагают расширенные возможности обработки данных с помощью таких функций, как необязательные поля, значения по умолчанию и вложенные структуры.
Вот пример, в котором мы покажем, как добавить необязательные поля и значения по умолчанию:
Предположим, мы хотим позволить пользователям вводить дополнительные сведения о книгах, такие как жанр и время выполнения. Однако эти данные не всегда могут быть доступны. С помощью классов данных Pydantic мы можем легко добиться этого, сделав поля необязательными и даже установив значения по умолчанию.
В этом примере класс данных «Кино» включает два новых поля: язык, на котором написана книга, и количество страниц. Поле «язык» имеет значение по умолчанию «Неизвестно», что означает, что если пользователь не предоставляет эту информацию, по умолчанию используется значение «Неизвестно». Поле «количество страниц» является необязательным и его можно оставить пустым (установить значение «нет»).
от пидантический Импортировать Базовая модельсорт Книга ( Базовая модель ) :
заголовок: ул.
автор: ул.
год выпуска: интервал
язык: ул. '=' 'неизвестный'
страницы: интервал '=' Никто
вход '=' {
'заголовок' : 'Страдать' ,
'автор' : 'Адам' ,
'год_выпуска' : 2023 год ,
'язык' : 'Английский' ,
'страницы' : 2. 3. 4
}
книга '=' Книга ( ** вход )
Распечатать ( «Подробности книги:» , книга. заголовок , книга. автор , книга. год выпуска , книга. язык , книга. страницы )
Мы можем скопировать эти строки кода и вставить их в компилятор, чтобы увидеть результаты:
от пикантный Импортировать Базовая модельсорт Книга ( Базовая модель ) :
заголовок: ул.
автор: ул.
год выпуска: интервал
вход '=' {
'заголовок' : 'Страдать' ,
'автор' : 'Адам' ,
'год_выпуска' : 2023 год
}
# Создание экземпляра книги
пытаться :
книга '=' Книга ( ** вход )
Распечатать ( «Подробности книги:» , книга. заголовок , книга. автор , книга. год выпуска )
кроме Исключение как Это:
Распечатать ( 'Ошибка:' , Это )
Включая эти необязательные поля и значения по умолчанию, Pydantic гарантирует, что данные остаются хорошо структурированными и согласованными, даже если пользователи не предоставляют определенные подробности.
Метод 2. Обработка данных с помощью класса данных Pydantic для формы регистрации студентов.
Представьте, что мы делаем форму регистрации на школьное мероприятие. Людям необходимо ввести свою информацию, и мы хотим избежать ошибок. В этом вам помогут классы данных Pydantic. Они следят за правильностью данных и легко с ними справляются.
После добавления необходимых пакетов в проект Python мы определяем класс данных Pydantic, создавая класс данных Pydantic под названием «Студент» для подробной информации об участниках.
от пикантный Импортировать Базовая модельИспользуйте декоратор класса, чтобы настроить класс «Студент». Он наследуется от BaseModel от Pydantic. Внутри мы называем такие атрибуты, как имя, адрес электронной почты, отдел и телефон, каждый со своим типом данных.
сорт Студент ( Базовая модель ) :имя: ул.
электронная почта : ул.
отделение: ул.
телефон: ул.
Теперь, используя класс данных Pydantic, работайте с классом данных «Студент» для управления данными учащихся:
Информация '=' {'имя' : 'XYZ' ,
'электронная почта' : 'xyz@student.com' ,
'отделение' : 'Андрей' ,
'телефон' : '0003-4567234'
}
В этой части мы делаем вид, что кто-то подписывается. Когда мы создаем экземпляр «Студент», используя их данные, Pydantic проверяет, соответствует ли он структуре. Если возникает ошибка, например электронное письмо без «@» или нестрочный отдел, Pydantic останавливается и объясняет проблему.
студент '=' Студент ( **Информация )Распечатать ( «Информация об ученике:» , студент )
Улучшенная обработка данных с использованием классов данных Pydantic дает нам готовые к использованию данные. Мы можем добавить больше полей, установить значения по умолчанию или работать со сложными настройками данных. Все это гарантирует, что наши данные остаются организованными.
Код и фрагмент вывода упоминаются ниже для наблюдения:
от пикантный Импортировать Базовая модельсорт Студент ( Базовая модель ) :
имя: ул.
электронная почта : ул.
отделение: ул.
телефон: ул.
Информация '=' {
'имя' : 'XYZ' ,
'электронная почта' : 'xyz@student.com' ,
'отделение' : 'Андрей' ,
'телефон' : '0003-4567234'
}
студент '=' Студент ( **Информация )
Распечатать ( «Информация об ученике:» , студент )
Посмотрев выходные данные, мы можем подвести итог, что классы данных Pydantic обеспечивают плавную обработку данных в этом простом примере. Они следят за тем, чтобы введенные данные соответствовали тому, что мы хотим. Это означает меньше ошибок и более счастливых пользователей.
Заключение
Классы данных Pydantic интегрируют то, как мы работаем с данными. Они гарантируют, что информация не только точна, но и соответствует требуемой структуре. Это приводит к меньшему количеству ошибок и более безупречному применению. С помощью Pydantic разработчики могут посвятить свои усилия созданию хорошо функционирующих приложений, не беспокоясь о проблемах с данными. Думайте об этом как о наличии специального диспетчера задач только для управления данными, гарантирующего бесперебойную работу от начала до конца.