这是我的架构文件

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

这就是我的路由

@router.get("/holidays/",response_model = List[HolidayDateSchema])

我想得到的回答是

[
    {
        "date": "2021-08-14",
        "name": "Independence Day",
        "holidays": { "year": 2022, "month":5, "country":"pk", "language":"en"},
        "id": 13
    },
]

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

如果任何人都能用RESPONSE_MODEL指定获得深度嵌套的JSON对象的最佳方案,那就太好了.

推荐答案

HolidaySchema未配置为orm_mode = True.

对于要从SQLAlChemy模型对象自动转换的所有模型,您都需要它.

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

    class Config:
        orm_mode = True

如果您想要所有型号的设置,您可以 Select can configure that setting on a common BaseModel并从其继承.

Python相关问答推荐

调查TensorFlow和PyTorch性能的差异

aiohTTP与pytest的奇怪行为

在Windows上启动新Python项目的正确步骤顺序

遵循轮廓中对象方向的计算线

LAB中的增强数组

我必须将Sigmoid函数与r2值的两种类型的数据集(每种6个数据集)进行匹配,然后绘制匹配函数的求导.我会犯错

提取两行之间的标题的常规表达

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

点到面的Y距离

滚动和,句号来自Pandas列

Python中的嵌套Ruby哈希

_repr_html_实现自定义__getattr_时未显示

C#使用程序从Python中执行Exec文件

用NumPy优化a[i] = a[i-1]*b[i] + c[i]的迭代计算

如何在Python脚本中附加一个Google tab(已经打开)

使用密钥字典重新配置嵌套字典密钥名

导入...从...混乱

如何在图中标记平均点?

Geopandas未返回正确的缓冲区(单位:米)

Gekko中基于时间的间隔约束