问题标签 [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 回答
7910 浏览

python - 如何在 pydantic 模型中解析 ObjectId?

我正在尝试将 MongoDB 记录解析为 pydantic 模型,但未能这样做ObjectId

据我了解,我需要为 ObjectId 设置验证器,并尝试扩展 ObjectId 类并validator使用 ObjectId 将装饰器添加到我的类中。我做了如下。

不幸的是,这两个“解决方案”都失败了,如下所示:

这里肯定有一些我想念的东西。

0 投票
1 回答
4882 浏览

python - 如何从 pydantic 模型解析和读取“_id”字段?

我正在尝试将 MongoDB 数据解析为一个 pydantic 模式,但未能读取其_id似乎刚刚从模式中消失的字段。
这个问题肯定与对象属性前面的下划线有关。我无法更改_id字段名称,因为这意味着根本不解析该字段。
请在下面找到我使用的代码(为了简化而使用int而不是)ObjectId

User_1解析成功,因为它的_id字段是必需的,但之后无法读取。 User_2如果附加到不提供任何id字段但_id.

上面代码的输出如下:

0 投票
2 回答
4438 浏览

python - Pydantic验证器删除空白字符串?

我有以下 Pydantic 模型:

我的目标是能够将空字符串作为空值忽略,但它似乎不起作用。

Report(id=5,name="Steve",grade=0.5) 创建一个实例,proportion=None但... Report(id=5,name="Steve",grade=0.5,proportion="")抛出错误value is not a valid float (type=type_error.float)。我怎样才能得到与第一种情况相同的结果?

0 投票
5 回答
4978 浏览

python - 在 Python 中直接实例化 `typing.Union`

我想实例化两个直接派生的类的类型。Unionpydantic.BaseModel但是我得到一个TypeError: Cannot instantiate typing.Union.

我见过的所有示例都声明Union为类的属性(例如此处)。

下面是我想使用的最小示例。

有没有办法做到这一点?

这是我得到的错误

0 投票
3 回答
2371 浏览

python - 无需硬编码即可获取类的字段名称

我有一个像这样的 Pydantic 模型类

现在,我希望能够在没有硬编码的情况下引用“用户名”(就像我如何能够引用类名一样)

有没有办法不经过代码生成路线?

0 投票
2 回答
347 浏览

python - 具有合理默认值的必填字段

考虑以下

这将为required提供一个必填字段Model,但是,在 FastAPI 自动生成的 Swagger 文档中,它将具有“字符串”的示例值。

如何使用合理的默认值创建必填字段?如果我制作一个像

然后required不再需要该字段,但它在文档中显示为合理的默认值。有一个简单的解决方法吗?

0 投票
1 回答
73 浏览

python - pydantic:读取模型中没有值的模型

是否可以使用允许模型中未指定值的 pydantic 定义模型?

例如我有一个 json 对象:

我希望使用它来定义它

但保留所有其他附加键?

0 投票
1 回答
3727 浏览

python - REST API in Python with FastAPI and pydantic: read-only property in model

Assume a REST API which defines a POST method on a resource /foos to create a new Foo. When creating a Foo the name of the Foo is an input parameter (present in the request body). When the server creates a Foo it assigns it an ID. This ID is returned together with the name in the REST response. I am looking for something similar to readOnly in OpenAPI.

The input JSON should look like this:

The output JSON should look like that:

Is there a way to reuse the same pydantic model? Or is it necessary to use two diffent models?

I cannot find any mentions of "read only", "read-only", or "readonly" in the pydantic documentation or in the Field class code.

Googling I found a post which mentions

But that seems to have no effect in my use case.

0 投票
1 回答
423 浏览

python - 是否可以动态地将对象专门化为子类?

我目前的情况是,我有一个类 (Item) 和一个子类 (ScoredItem) 以及一个将 Item 变为 ScoredItem 的函数。该代码工作正常,但它需要我重新创建现有对象。可能会发生Item另一个具有默认值的属性,这会破坏代码。例如,如果Item有一个属性total_interactions : int = 0,那么插入的项目列表score_items很可能没有total_interactions=0。但是如果score_items不调整,那么它就会默默地失败。有没有办法防止这种情况?像scored_item = ScoredItem(score=0.123, **item)什么?或者item.score = 0.123; scored_item = ScoredItem(item)

我考虑过组合与继承,但有很好的指标应该是继承。

MVCE

0 投票
1 回答
2680 浏览

python - 在 pydantic 模型中包含非验证方法是不好的做法吗?

我正在使用 pydantic 1.3 来验证我正在编写的 API 的模型。

在从 pydantic.BaseModel 继承的类中包含任意方法是否常见/良好的做法?

我需要一些与对象关联的辅助方法,并且我正在尝试确定是否需要“处理程序”类。这些模型正在被转换为 json 并发送到我也在编写的宁静服务。

我的模型如下所示:

做类似的事情是不好的做法:

这对我来说很有意义,但我找不到任何人这样做的例子。

先感谢您。