是否可以使用 fastapi 强加请求正文的列表属性的长度?

Fef*_*efe 14 pydantic fastapi

是否可以在请求正文(或响应)的架构中指定列表的长度?支持使用查询函数验证 url 中传递的字符串的长度,但我没有看到任何列表。可能的用例是发送固定大小的浮点数列表以馈送到 ML 模型。

Mat*_*ndh 25

您可以将该函数与和 一起使用Fieldmin_itemsmax_items

from pydantic import Field

class Foo(BaseModel):
    fixed_size_list_parameter: float = Field(..., min_items=4, max_items=4)
Run Code Online (Sandbox Code Playgroud)

..或者您可以使用conlistpydantic 中的(约束列表)类型:

from pydantic import conlist

class Foo(BaseModel):
    # these were named min_items and max_items in Pydantic v1
    fixed_size_list_parameter: conlist(float, min_length=4, max_length=4)
Run Code Online (Sandbox Code Playgroud)

这将列表限制为该float类型的四个条目。