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

Тип Json

Тип Json применяется в моделях Pydantic для описания полей, которые содержат JSON-строку. При валидации строка проверяется на корректность JSON и при необходимости преобразуется в Python-объект. Тип доступен через импорт из модуля pydantic.

Синтаксис

from pydantic import Json class Model(BaseModel): field: Json

Пример

Давайте создадим модель с полем типа Json и передадим в неё корректную JSON-строку:

from fastapi import FastAPI from pydantic import BaseModel, Json app = FastAPI() class Item(BaseModel): data: Json @app.post('/items/') def create_item(item: Item): return {'data': item.data}

Результат выполнения кода для JSON-строки '{"key": "value"}':

{"data": {"key": "value"}}

Пример

Давайте передадим некорректную JSON-строку и посмотрим, как отработает валидация:

from fastapi import FastAPI from pydantic import BaseModel, Json app = FastAPI() class Item(BaseModel): data: Json @app.post('/items/') def create_item(item: Item): return {'data': item.data}

Результат выполнения кода для строки 'not a json':

{ "detail": [ { "type": "json_invalid", "loc": ["body", "data"], "msg": "JSON decode error", "input": "not a json", "ctx": {"error": "Expecting value"} } ] }

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

  • класс BaseModel,
    который является основой для создания моделей
  • метод model_validate_json,
    который валидирует модель из JSON-строки
  • метод model_dump_json,
    который сериализует модель в JSON-строку
  • класс SecretStr,
    который скрывает конфиденциальные строковые данные
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить