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

Параметр exclude_none

Параметр exclude_none применяется к методам сериализации моделей Pydantic, а также к параметрам ответа в FastAPI. Он указывает, нужно ли исключать из результата поля, значение которых равно None. Если параметр равен True, такие поля не попадают в итоговый словарь или JSON. Если False, поля сохраняются со значением None.

Параметр может передаваться в методы model_dump, model_dump_json, а также в аргумент response_model_exclude_none декораторов FastAPI.

Синтаксис

model_dump(exclude_none=True) model_dump_json(exclude_none=True) @app.get(path, response_model_exclude_none=True)

Пример

Давайте создадим модель Pydantic с полем, которое может быть равно None, и вызовем model_dump с параметром exclude_none:

from pydantic import BaseModel class User(BaseModel): name: str age: int | None = None user = User(name='abcde') res = user.model_dump(exclude_none=True) print(res)

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

{'name': 'abcde'}

Пример

Если передать exclude_none=False, поле со значением None останется в результате:

from pydantic import BaseModel class User(BaseModel): name: str age: int | None = None user = User(name='abcde') res = user.model_dump(exclude_none=False) print(res)

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

{'name': 'abcde', 'age': None}

Пример

Давайте применим response_model_exclude_none в маршруте FastAPI, чтобы исключить None-поля из ответа:

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str age: int | None = None @app.get('/user', response_model=User, response_model_exclude_none=True) def get_user(): return User(name='abcde')

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

{"name": "abcde"}

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

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