问题标签 [pydantic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
18866 浏览

python - Pydantic:根据其他字段的值在验证器中设置字段 None

我将 pydanticBaseModel与这样的验证器一起使用:

我想some_date根据 的值计算 的值,some_list并在None满足某个条件时进行计算。

我的 JSON 从不包含该字段some_date,它始终基于some_list因此填充pre=True, always=True。但是,默认验证器some_datevalidate_date我的自定义验证器之后运行,如果返回,它将失败None

有没有办法创建这样一个只能由另一个计算并且仍然可以的字段Optional

0 投票
2 回答
1816 浏览

python - 如何验证名称为“来自”的 JSON 字段

我想通过使用pydantic验证器验证 JSON 对象(它在Telegram Bot API中),其中包含来自字段(Python 中的保留字)。所以我的模型应该如下所示:

但是使用来自在这种情况下不允许

我怎么能这样做?

注意:“为什么我们不能将关键字用作属性”不同,因为这里我们得到了我们无法控制的外部 JSON,无论如何我们都应该使用from字段处理 JSON。

0 投票
1 回答
1249 浏览

python - 如何使用 pydantic 链接验证

假设我有获取 json 数据的 webhook。这个json是由pydantic递归转换的。

我用更新模型检查这个 json 是最小的有效对象(内部包含消息模型):

但稍后在代码中我想扩展验证,因此要检查消息不仅是Message,而且是TextMessage

所以我将消息传递给验证函数

但是我得到的错误是pydantic不需要Message类型,而是dict

我该怎么做?我如何对已经验证的(基本上)数据应用额外的验证?

0 投票
7 回答
34165 浏览

python - 如何使用 Pydantic 解析模型列表

我使用 Pydantic 对 API 的请求和响应进行建模。

我定义了一个User类:

我的 API 返回一个用户列表,我用它检索requests并转换为字典:

如何将此字典转换为User实例列表?

我现在的解决方案是

0 投票
2 回答
1661 浏览

python - 使用 MyPy 的项目中的 FastAPI/Pydantic

我目前正在学习 fastAPI 教程,我的环境设置为 black、flake8、bandit 和 mypy。本教程中的所有内容都运行良好,但我一直不得不 # type: ignore things 让 mypy 合作。

Mypy 然后错误:

我可以 # type: ignore ,但是我在编辑器中丢失了类型提示和验证。我是否遗漏了一些明显的东西,还是应该为 FastAPI 项目禁用 mypy?

0 投票
1 回答
233 浏览

python - pydantic 模块仅在 init 中检查变量

pydantic 模块仅在 init 中检查变量

点安装 pydantic

例子

如果设置了变量的类型,是否可以检查它们?

0 投票
1 回答
3260 浏览

python - 如何在使用 pydantic 进行类型转换之前进行类型检查?

我使用 pydantic 的 dataclass 装饰器创建了一个类,我想在参数成为类的属性之前检查它的类型。这是我的代码:

现在,当我创建一个像 person = Person(12) 这样的实例时,参数也变成了一个字符串 ('12')。如何在实例将参数转换为字符串之前检查类型?

0 投票
1 回答
142 浏览

fastapi - FastAPI:修改响应代码,同时保留自动验证

在下面的代码中,我创建了一个发布路由,无论输入如何,它都会发回相同的响应。

输入和输出是自动验证的,因为我在适当的地方引用了 pydantic BaseModel。

在您的文档中,您有如何修改响应代码的示例。

两个问题:

  • 如何在保留响应验证(我放置在装饰器中)的同时有条件地修改响应代码?

  • 我能做些什么来清理我的代码?为输入提供默认值的首选方法是什么?你能举个例子吗?

0 投票
1 回答
208 浏览

fastapi - `validator` 方法是否需要检查所需的参数?

文档看来,此代码在 in 的第二个validator装饰方法中password1包含一个额外的检查values

我的观察是否正确 - 因为password1不包含默认值,它确实是必需的,所以应该在那里?

好的,在我看到的文档中继续阅读:如果另一个字段的验证失败(或该字段丢失),它将不会包含在值中,因此如果值中的 'password1' 和 ... 在此示例中。

我可以看一个例子来说明这意味着什么吗?这是否意味着我需要始终检查值是否存在,如果它们在我的验证中发挥作用,即使它们是必需的?

0 投票
0 回答
1266 浏览

python - Pydantic:如何从嵌套字典中提取模式?

我有一个包含数据库配置(键databases)(ServiceDatabaseOtherDatabase)的字典,并希望将其提取到里面的两个不同的子模型中。例子:

我想用 pydantic 的 Options 或 Schema 功能来实现它。在我看来,它会像service_db = Field(schema=ServiceDatabase, extract_from='database')