Fastapi报错RuntimeError: no validator found for <class ‘typing._UnionGenericAlias‘>, see `arbitrary_ty

Fastapi报错RuntimeError: no validator found for <class ‘typing._UnionGenericAlias’>, see `arbitrary_ty

问题描述

使用FastAPI 请求体 - 嵌套模型的时候报错, 不嵌套的时候是可以的

不嵌套校验
class PredictGas(BaseModel):
    predict_level: str
    predict_day_is_heating_season: bool
    predict_type: str = Field(default="area", description="预测类型")
    heating_start_date: Union[datetime, date]
    heating_end_date: Union[datetime, date]
    # Optional可选类型  Optional[X]等价于Union[X, None]    int=1等价于Optional[int] = 2   Union[int, float]只能传int  float
    model: Optional[int] = Field(default=1, title="算法模型id", description="可选不同模型调用", le=2, ge=1)
    data: List[dict] = []  # List[dict] = [] 等价于 list = []  # 前者可验证list内部第一层数据结构

其中 Optional可选类型 Optional[X]等价于Union[X, None] int=1等价于Optional[int] = 2 Union[int, float]只能传int float

使用嵌套模型 (其中data是第一层列表字典数据)

其中验证流程是 从外到内层 PredictGas —>>> DataBody ----->>> (PredictParams, PastParams)

class PredictParams(BaseModel):
    # is_heating = Optional[bool]
    # ts: Union[datetime, date]
    # low_temp = Union[int, float]
    # low_temp = float
    # high_temp = float
    # is_heating = bool

    ts = date
    low_temp: float = 1.0
    high_temp: float = 10.0
    is_heating: bool = 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BRYTLEVSON

打赏的都是天使,创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值