默认将 JSON 值声明为 null

问题描述 投票:0回答:1

我有一个带有 POST 方法的 python API,它的输入 JSON 结构如下:

{
  "foo": 0,
  "bar": 0,
  "baz": "string",
}

但是这些默认值不适合我。

所需的默认 JSON 会将空值应用于每个字段,就像这样:

{
  "foo": null,
  "bar": null,
  "baz": null,
}

使用 Pydantic

Field(example=None)
Field(default=None)
对我没有任何帮助。 我不知道 FastAPI 函数或属性可以帮助我实现我的目标。

python swagger fastapi pydantic
1个回答
0
投票

要允许默认空值,您需要将其添加到字段的定义中。

您没有在原始消息中分享它,所以我创建了这个工作示例:

from pydantic import BaseModel


class PostRequestExample(BaseModel):
    foo: int | None = None
    bar: int | None = None
    buz: str | None = None


@router.post('/post_example')
async def post_example(post_request: PostRequestExample):

    return post_request
© www.soinside.com 2019 - 2024. All rights reserved.