Рубрики
Без рубрики

Питона сериализация с зефиром

Когда мы создаем API, нам нужен прочный путь для сериализации и десериализации наших данных. Это много … Теги с Python, зефиром, сериализацией, API.

Когда мы создаем API, нам нужен прочный путь для сериализации и десериализации наших данных. Многие способы сделать это, но в этой статье мы посмотрим, как работать с Зефир Отказ

Итак, давайте посмотрим, как мы начинаем использовать зефир в наших проектах.

Установите зефир

Чтобы установить зефир, мы будем использовать PIP:

$ PIP Установить -u зефир

Обратите внимание, что параметр -U используется для обновления всех пакетов в новейшую версию.

Теперь у нас есть:

PIP Установка -U зефир собирает зефир с использованием кешированного зефира – 3.5.1-PY2.PY3-NORE-IN .WHL (45 КБ) Установка собранных пакетов: зефир Успешно установлен зефир-3.5.1

Создание нашей первой схемы

Создать схему, мы будем использовать в основном два импорта: Схема и поля

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

Теперь мы можем сериализовать и десетировать наши данные, используя нашу схему:

Как видите, мы в основном используем нагрузка Для десериализации наших данных в объекты Python и Дамп сериализовать его снова.

Проверка данных с зефиром

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

Как вы можете видеть в коде выше, мы отправили целое число для поля, ожидая действительного UUID. Когда мы используем метод нагрузки, зефир поднимет ValidationError со всеми данными, которые неверны.

Вы можете использовать Сообщения Свойство, чтобы проверить все данные, которые не удалось проверить, а с valid_data Свойство, вы можете проверить все данные, которые действительны.

Пользовательские проверки сообщений в зефире

Хотя мы можем использовать сообщения проверки по умолчанию, предоставляемые зефирными, мы можем предоставить наши собственные сообщения:

И когда мы пытаемся загрузить данные, мы получим наше послание каждому Cenario:

Оригинал: “https://dev.to/rafamarques/python-serialization-with-marshmallow-1mh8”