问题标签 [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 投票
1 回答
5689 浏览

python - 如何在 pydantic 中设置最大字符串字段长度约束?

所以,我有带有字符串字段的 pydantic 模型

我想让这个字段的最大长度为 10。我该怎么做?

0 投票
1 回答
5785 浏览

python - Pydantic - 在 response_model 中使用“联合”和“字段”时无法序列化/验证

  • 操作系统:Ubuntu 18.04.4 LTS
  • Python版本:3.7.7
  • Pydantic 版本:1.4

我正在尝试制作class TableSettingasBaseModel并将其作为response body. 但似乎这个类中有一些验证或序列化错误。我想这可能是Union或者Optional[str]我使用但不确定。

源代码

的 json 模式class TableSetting应该是这样的

表演时curl

它返回错误如下,响应代码为 500, Internal Server Error,似乎有些验证问题,kitchen但我不知道为什么。

但是,当= Field(..., title="I a title")从代码中删除时,如下所示。响应代码 200可以正常工作,但是由于我需要Item kitchen,所以这不是我想要的。

我怎样才能解决这个问题?

谢谢

0 投票
1 回答
294 浏览

python-3.6 - FastAPI 文件必须放在函数参数中的表单之前

我有一个端点,它接受一个文件和一个通过表单主体传递的字符串参数。但是我在调​​试时注意到:

将这个简单的 curl 命令与 test_file.txt 一起使用,其中包含一些文本:

不适用于此错误:

但有趣的是,这确实有效:

唯一的区别是您在 Form 元素之前获取 File。有人知道为什么会这样吗?看起来需要在表单之前上传文件。当 Form 解析 http 表单正文时,文件可能会被杀死。我在 FastAPI 文档中没有看到任何关于表单和文件的内容。

0 投票
4 回答
12598 浏览

python - 如何验证 pydantic 模型的多个领域

我想验证 pydantic 模型的三个模型字段。为此,我从 pydantic 导入 root_validator。低于错误。我在https://pydantic-docs.helpmanual.io/usage/validators/#root-validators中找到了这个。任何人都可以帮助我。找出下面的错误。from pydantic import BaseModel, ValidationError, root_validator Traceback(最近一次调用最后一次):文件“”,第 1 行,在 ImportError 中:无法从“pydantic”导入名称“root_validator”(C:\Users\Lenovo\AppData\Local\Programs\ Python\Python38-32\lib\site-packages\pydantic__init__.py)

我试过了

我从一些常见的字段父模型继承了我的 pydantic 模型。值仅显示父类字段,但不显示我的子类字段。例如

0 投票
2 回答
4766 浏览

python - 以优雅的方式使用 Pydantic 检查 List 是否为空

假设我有一些BaseModel,我想检查它的options列表是否为空。我可以完美地做到这一点validator

还有其他更优雅的方法吗?

0 投票
1 回答
7470 浏览

python - jsons数组的Pydantic模型

我正在使用 FastAPI 编写 Web 服务。它又好又快。

FastAPI 使用 pydantic 模型来验证输入和输出数据,一切都很好,但是当我想为 jsons 数组声明一个嵌套模型时,如下所示:

我得到空洞的回应。

我认为我的模型存在问题:

所以,我的问题是我应该如何为 jsons 数组编写模型?

0 投票
3 回答
6957 浏览

python - 在 FastAPI 中测试 Pydantic 设置

假设我main.py是这样的(这是一个简化的示例,在我的应用程序中我使用了一个实际的数据库,并且我有两个不同的数据库 URI 用于开发和测试):

虽然.env

假设我想测试我的代码并且我想设置ENVIRONMENT=test为使用测试数据库。我应该怎么办?在 FastAPI 文档(https://fastapi.tiangolo.com/advanced/settings/#settings-and-testing)中有一个很好的例子,但它是关于依赖关系的,所以据我所知,情况不同。

我的想法如下(test.py):

但它不起作用。

此外,我收到此错误:

虽然从pytest官方文档来看它应该可以工作(https://docs.pytest.org/en/3.0.1/monkeypatch.html#example-setting-an-environment-variable-for-the-test-session)。我已经pytest安装了最新版本。

因此,我尝试使用特定的测试环境变量:https ://pydantic-docs.helpmanual.io/usage/settings/#field-value-priority 。

老实说,我迷路了,我唯一真正的目标是拥有不同的测试配置(与 Flask 的工作方式相同:https ://flask.palletsprojects.com/en/1.1.x/tutorial/tests/#setup-和固定装置)。我是否以错误的方式解决问题?

0 投票
2 回答
3208 浏览

pydantic - 如何删除空字段?

我有一个像这样的 BaseModel

虽然我验证了一些这样的数据

我得到了结果

{'id':123,'name':无}

但我期望的是:

{'id':123}

问题:有没有删除空字段的方法?谢谢!

0 投票
3 回答
6186 浏览

python - 在 Post 请求的正文中发送列表值以验证 Pydantic 模型

我正在使用 FastAPI、Pydantic、SQLAlchemy 和 Postgres 来构建一个接收 post 请求并将数据存储在数据库中的服务。Pydantic 模型中有一个List,如下所示:

和表:

当没有List值时,这是我执行发布请求的方式:

发布请求的正文:

它工作正常。但是添加List值会因 Pydantic 的验证错误而破坏它:

值不是有效列表

type_error.list

如何更改发布功能和请求正文以使其正常工作?

编辑:回溯:

0 投票
1 回答
4432 浏览

python - 尽管数据库/模型中存在数据,但 FastAPI 没有选择嵌套模式

尝试返回存储在两个模型之间的关系中的数据时出现错误。更多信息如下:

models.py(相关模型为CompanyAddress

schemas.py

相关电话main.py

现在,据我从文档中可以看出,我已经把一切都设置好了。当我address: Address从公司架构中删除时,此调用将返回正确的公司/公司,但没有地址数据。

我通过测试检查了相关地址数据是否与公司模型相关联

所以我知道数据在地址表中,关系设置正确,并且模型和模式在尝试将地址数据包含在结果中之前工作。但是,当我尝试访问时,http://127.0.0.1:8000/companies?number=12544331我收到内部服务器错误和以下错误消息:

似乎认为地址数据不存在。我认为这与延迟加载有关orm_modeschemas.py但我已orm_mode着手True避免这种情况(请参阅https://fastapi.tiangolo.com/tutorial/sql-databases/#technical-details-about-orm-mode)。

请问,我错过了什么?