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

我正在使用 pydantic 检查参数文件的格式。如果参数名称中有拼写错误,我希望 pydantic 引发错误,但它不会。


例如,以下内容不会引发任何错误:


from typing import Optional

from pydantic import BaseModel


class Param(BaseModel):

    param1: int

    param2: Optional[str] = None


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


但parram2在我的 BaseModel 中没有定义(因为拼写错误),所以我希望 pydantic 引发错误。


知道我应该怎么做吗?


编辑:我找到了一个使用 dataclass 而不是 BaseModel 的解决方案,但 dataclass 似乎不适用于 FastAPI,所以我无法使用 dataclass


摇曳的蔷薇
浏览 107回答 1
1回答

慕婉清6462132

我找到了解决方案:from typing import Optionalfrom pydantic import BaseModel class Param(BaseModel):    param1: int    param2: Optional[str] = None    class Config:        extra = 'forbid'p = Param(param1=2, param2=9)上面现在引发错误
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python