小编Rah*_*qui的帖子

使用response_model fastAPI和Pydantic返回深度嵌套的json对象

这是我的架构文件

from pydantic import BaseModel
from typing import Optional


class HolidaySchema(BaseModel):
    year: int
    month: int
    country: str
    language: str


class HolidayDateSchema(BaseModel):
    name: str
    date: str
    holidays: HolidaySchema | None = None

    class Config:
        orm_mode = True
Run Code Online (Sandbox Code Playgroud)

这是我的路由器

@router.get("/holidays/",response_model = List[HolidayDateSchema])
Run Code Online (Sandbox Code Playgroud)

我想得到的回应是

[
    {
        "date": "2021-08-14",
        "name": "Independence Day",
        "holidays": { "year": 2022, "month":5, "country":"pk", "language":"en"},
        "id": 13
    },
]
Run Code Online (Sandbox Code Playgroud)

现在它不支持带有响应模型的 pydantic 模式,我不知道为什么,它给出了错误 pydantic.error_wrappers.ValidationError: 2 validation errors for HolidayDateSchemavalue is not a valid dict

如果任何人都可以指定使用response_model 获取深度嵌套的JSON 对象的最佳方式,那就太好了。

python sqlalchemy pydantic fastapi

5
推荐指数
1
解决办法
2814
查看次数

标签 统计

fastapi ×1

pydantic ×1

python ×1

sqlalchemy ×1