如何让pydantic在BaseModel获取意外参数时引发ValidationError

3

我正在使用 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)

但是因为拼写错误,我的BaseModel中未定义parram2,所以我希望pydantic引发一个错误。

你有什么想法应该怎么做?

编辑:我找到了一种使用dataclass而不是BaseModel的解决方案,但是似乎dataclass无法与FastAPI一起使用,所以我不能使用dataclass。

1个回答

3
我找到了解决方案:
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)

上述现在引发了一个错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接