Функция jsonable_encoder
Функция jsonable_encoder из модуля fastapi.encoders
принимает произвольный объект Python и возвращает его
JSON-совместимое представление: словарь, список, строку, число
или None. Она умеет обрабатывать модели Pydantic,
даты, время, множества, байты, перечисления и вложенные структуры.
Первым параметром передаётся объект для преобразования.
Вторым необязательным параметром include задаётся набор полей,
которые нужно оставить. Третьим необязательным параметром exclude
задаётся набор полей, которые нужно исключить.
Синтаксис
jsonable_encoder(obj, include=None, exclude=None)
Пример
Давайте преобразуем простой словарь с датой в JSON-совместимую структуру:
from fastapi.encoders import jsonable_encoder
from datetime import datetime
data = {'name': 'abcde', 'created': datetime(2024, 1, 1, 12, 0, 0)}
res = jsonable_encoder(data)
print(res)
Результат выполнения кода:
{'name': 'abcde', 'created': '2024-01-01T12:00:00'}
Пример
Давайте преобразуем модель Pydantic в словарь:
Результат выполнения кода:
Пример
Давайте исключим поле age из результата через параметр exclude:
Результат выполнения кода:
Пример
Давайте оставим только поле name через параметр include:
Результат выполнения кода:
Смотрите также
-
параметр
include,
который задаёт поля для включения в результат -
параметр
exclude,
который задаёт поля для исключения из результата -
параметр
exclude_unset,
который убирает неустановленные поля модели -
параметр
by_alias,
который использует псевдонимы полей при выводе