首页 > 解决方案 > 是否可以使用 fastapi 为请求正文的列表属性强加长度?

问题描述

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

标签: fastapi

解决方案


您可以Field函数min_itemsand一起使用max_items

from pydantic import Field

class Foo(BaseModel):
    fixed_size_list_parameter: float = Field(..., min_items=4, max_items=4)

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

from pydantic import conlist

class Foo(BaseModel):
    fixed_size_list_parameter: conlist(float, min_items=4, max_items=4)

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


推荐阅读