pydantic.error_wrappers.ValidationError:1URL无效,有效URL后发现额外字符:

问题描述 投票:0回答:1

我正在尝试使用 Python 将文本文件读入文档数组或文本 url,但我不断收到错误。

我的代码:

doc = MyText(
    url="C:\\Users\\User\\PycharmProjects\\vector_database_using_vectordb\games.txt"
)

doc.text = doc.url.load("C:\\Users\\User\\PycharmProjects\\vector_database_using_vectordb\games.txt")

assert doc.text.startswith('<TITLE>Read Me>/TITLE')

MyText 模型: ''' # 通过定义模式存储文本表示。 # MyText 类(BaseDoc): # 文本:str = 无 # url: TextUrl = 无 ''' 我收到以下错误

    doc = MyText(
  File "pydantic\main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for MyText
url
  URL invalid, extra characters found after valid URL: ':\\Users\\User\\PycharmProjects\\vector_database_using_vectordb\\games.txt' (type=value_error.url.extra; extra=:\Users\User\PycharmProjects\vector_database_using_vectordb\games.txt)

我尝试删除多余的字符并包含一个类似于帖子中作为解决方案提供的验证器:如何接受没有协议的网址?,但仍然收到相同的错误。

python pydantic docarray
1个回答
0
投票

我认为您对为 FilePaths 添加 pydantic valdation 感到困惑,而是使用 AnyURL

无论如何你也可以尝试以下改进。

  1. 使用原始字符串而不是实际字符串。由于特殊字符,使用
    r"A/B"
    "A/B"
    更好。
  2. 尝试使用 Pathlib 构造一个 Posixpath 而不仅仅是字符串。

注意:请不要忘记添加 MRE 或在本例中添加最小、可重现的代码示例到您的问题/编辑您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.