Pydantic 2.x中conlist报min_items参数错误的原因及解决方法
问题原因与解决方法
错误原因
你使用的是Pydantic 2.9.2版本,但参考的是1.10版本的文档,两个版本中conlist的参数规则存在差异:
- Pydantic 1.x里的
min_items、max_items参数,在2.x中被重命名为min_length、max_length - 1.x中的
item_type参数在2.x中被移除,需要直接将元素类型作为conlist的第一个位置参数传入
修正方案
方案1:适配Pydantic 2.x的conlist用法
修改参数名称并调整元素类型的传入方式:
from pydantic import BaseModel, conlist class CarData(BaseModel): model: str length: float width: float height: float fuel_efficiency: conlist(float, min_length=3, max_length=3) # 确保恰好3个值
方案2:使用Pydantic 2.x推荐的Annotated+Field写法
这种方式更符合新版Pydantic的风格,可读性更强:
from pydantic import BaseModel, Field from typing import Annotated, List class CarData(BaseModel): model: str length: float width: float height: float fuel_efficiency: Annotated[List[float], Field(min_length=3, max_length=3)]
内容的提问来源于stack exchange,提问作者KansaiRobot
相关产品推荐
相关产品推荐

