为了账号安全,请及时绑定邮箱和手机立即绑定

如果 BaseModel 得到意外参数,如何使 pydantic 引发

如果 BaseModel 得到意外参数,如何使 pydantic 引发

摇曳的蔷薇 2023-09-05 17:21:09
我正在使用 pydantic 检查参数文件的格式。如果参数名称中有拼写错误,我希望 pydantic 引发错误,但它不会。例如,以下内容不会引发任何错误:from typing import Optionalfrom pydantic import BaseModelclass Param(BaseModel):    param1: int    param2: Optional[str] = Nonep = Param(param1=2, parram2=9)但parram2在我的 BaseModel 中没有定义(因为拼写错误),所以我希望 pydantic 引发错误。知道我应该怎么做吗?编辑:我找到了一个使用 dataclass 而不是 BaseModel 的解决方案,但 dataclass 似乎不适用于 FastAPI,所以我无法使用 dataclass
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我找到了解决方案:


from typing import Optional

from pydantic import BaseModel

 


class Param(BaseModel):

    param1: int

    param2: Optional[str] = None


    class Config:

        extra = 'forbid'


p = Param(param1=2, param2=9)

上面现在引发错误


查看完整回答
反对 回复 2023-09-05
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信