Метод model_dump_json
Метод model_dump_json применяется к экземпляру модели
BaseModel и возвращает JSON-строку с данными этой модели.
В отличие от метода model_dump, который возвращает словарь,
данный метод сразу формирует строку в формате JSON.
Первым параметром можно передать indent для
форматирования отступов, а также exclude,
include, by_alias и другие параметры сериализации.
Синтаксис
model.model_dump_json(indent=None, exclude=None, include=None, by_alias=False)
Пример
Давайте создадим простую модель и сериализуем её в JSON-строку:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
age: int
@app.get('/')
def index():
user = User(name='abcde', age=25)
res = user.model_dump_json()
return {'json': res}
Результат выполнения кода:
{"json": "{\"name\":\"abcde\",\"age\":25}"}
Пример
Давайте передадим параметр indent, чтобы получить
отформатированную JSON-строку с отступами:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
age: int
@app.get('/')
def index():
user = User(name='abcde', age=25)
res = user.model_dump_json(indent=2)
return {'json': res}
Результат выполнения кода:
{"json": "{\n \"name\": \"abcde\",\n \"age\": 25\n}"}
Пример
Давайте исключим поле age из результата
с помощью параметра exclude:
<+python+>
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
age: int
@app.get('/')
def index():
user = User(name='abcde', age=25)
res = user.model_dump_json(exclude={'age'})
return {'json': res}
<-python+>
Результат выполнения кода:
{"json": "{\"name\":\"abcde\"}"}
Смотрите также
-
метод
model_dump,
который сериализует модель в словарь -
метод
model_validate,
который валидирует данные и создаёт модель -
метод
model_validate_json,
который валидирует JSON-строку и создаёт модель -
класс
BaseModel,
который является базовым классом для всех моделей Pydantic