pydantic没有验证pandas下面的DataFrame。如何处理这一点?
from pydantic.dataclasses import dataclass
@dataclass
class DataFrames:
dataframe1: pd.DataFrame = None
dataframe2: pd.DataFrame = None
这将引发以下错误:
File "pydantic\validators.py", line 715, in find_validators
RuntimeError: no validator found for <class 'pandas.core.frame.DataFrame'>, see `arbitrary_types_allowed` in Config
4条答案
按热度按时间o3imoua41#
就我个人而言,我输入了错误的类型注解
而不是;
愚蠢的一个ik,但双重检查:)
vof42yt12#
根据Pydantic Docs,您可以通过多种方式解决问题。
最简单的方法是在模型配置中允许任意类型,但这是与
BaseModel
打包的功能:再次引用the docs:请记住,pydantic.dataclasses.dataclass是带验证的dataclasses.dataclass的直接替代品,而不是pydantic.BaseModel的替代品
考虑到这一点,下面的代码运行良好:
0ve6wy6x3#
如果你带着一般性的问题
no validator found for <class 'XYZ'>
来到这里,你应该检查错过的BaseModel继承:56lgkhnf4#
另一个可能的错误:忘记从
BaseModel
继承模型,所以:而不是这样: