РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
291 of 307 menu

Функция 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 в словарь:

<+python+> from fastapi.encoders import jsonable_encoder from pydantic import BaseModel class User(BaseModel): name: str age: int user = User(name='abcde', age=25) res = jsonable_encoder(user) print(res) <-python+>

Результат выполнения кода:

<+python+> {'name': 'abcde', 'age': 25} <-python+>

Пример

Давайте исключим поле age из результата через параметр exclude:

<+python+> from fastapi.encoders import jsonable_encoder from pydantic import BaseModel class User(BaseModel): name: str age: int user = User(name='abcde', age=25) res = jsonable_encoder(user, exclude={'age'}) print(res) <-python+>

Результат выполнения кода:

<+python+> {'name': 'abcde'} <-python+>

Пример

Давайте оставим только поле name через параметр include:

<+python+> from fastapi.encoders import jsonable_encoder from pydantic import BaseModel class User(BaseModel): name: str age: int user = User(name='abcde', age=25) res = jsonable_encoder(user, include={'name'}) print(res) <-python+>

Результат выполнения кода:

<+python+> {'name': 'abcde'} <-python+>

Смотрите также

  • параметр include,
    который задаёт поля для включения в результат
  • параметр exclude,
    который задаёт поля для исключения из результата
  • параметр exclude_unset,
    который убирает неустановленные поля модели
  • параметр by_alias,
    который использует псевдонимы полей при выводе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить