Python 如果BaseModel获得意外参数,如何使pydantic引发ValidationError

Python 如果BaseModel获得意外参数,如何使pydantic引发ValidationError,python,python-3.x,pydantic,Python,Python 3.x,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

我正在使用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。我找到了解决方案:

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, parram2=9)
现在,上面的操作引发了一个错误