首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自pathlib的Pydantic和PurePosixPath

来自pathlib的Pydantic和PurePosixPath
EN

Stack Overflow用户
提问于 2021-06-29 22:10:33
回答 1查看 110关注 0票数 2

我有一个用带有Path字段的pydantic构建的settings类。我需要此路径作为Unix路径,因为它是在数据湖中导航

代码语言:javascript
复制
class Settings(BaseSettings):

    DATALAKE_MODEL_RESULT_PATH: Path

上面的类的问题是,如果我使用的是windows,那么即使dotenv文件中的路径被写成Unix (这就是Path类),路径也会被视为windows路径。

所以我试着

代码语言:javascript
复制
class Settings(BaseSettings):

    DATALAKE_MODEL_RESULT_PATH: PurePosixPath

但皮丹蒂克并不认可它

代码语言:javascript
复制
ValidationError: 1 validation error for Settings
DATALAKE_MODEL_RESULT_PATH
  instance of PurePosixPath expected (type=type_error.arbitrary_type; expected_arbitrary_type=PurePosixPath)

也许我需要一个自定义字段?验证器?

EN

回答 1

Stack Overflow用户

发布于 2021-06-30 03:13:39

您可以创建一个自定义验证器,该验证器将强制路径为正确的格式:

代码语言:javascript
复制
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%确定。但是,额外的验证可以在验证器函数->中进行,因此,如果您选择增强此解决方案,请将您的进一步工作放在那里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68180428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档