我有一个用带有Path字段的pydantic构建的settings类。我需要此路径作为Unix路径,因为它是在数据湖中导航
class Settings(BaseSettings):
DATALAKE_MODEL_RESULT_PATH: Path上面的类的问题是,如果我使用的是windows,那么即使dotenv文件中的路径被写成Unix (这就是Path类),路径也会被视为windows路径。
所以我试着
class Settings(BaseSettings):
DATALAKE_MODEL_RESULT_PATH: PurePosixPath但皮丹蒂克并不认可它
ValidationError: 1 validation error for Settings
DATALAKE_MODEL_RESULT_PATH
instance of PurePosixPath expected (type=type_error.arbitrary_type; expected_arbitrary_type=PurePosixPath)也许我需要一个自定义字段?验证器?
发布于 2021-06-30 03:13:39
您可以创建一个自定义验证器,该验证器将强制路径为正确的格式:
from pathlib import Path
from pydantic import validator
class Settings(BaseSettings):
DATALAKE_MODEL_RESULT_PATH: Path
@validator('DATALAKE_MODEL_RESULT_PATH')
def validate_path(cls, v):
return Path(v)这应该可以解决windows和linux之间的路径配置问题,但我不能100%确定。但是,额外的验证可以在验证器函数->中进行,因此,如果您选择增强此解决方案,请将您的进一步工作放在那里。
https://stackoverflow.com/questions/68180428
复制相似问题