Pydantic 2.0.3中Tuple字段长度验证错误的修复方法咨询
问题修复方案
原因分析
你定义的Tuple[int]在类型注解中表示仅包含1个int类型元素的元组,但你传入了包含2个元素的元组(1,2),因此触发了长度验证错误。
修复方式
根据实际需求选择以下两种方案之一:
方案1:允许任意数量的int元素
如果需要test_field可以接受任意长度(至少1个)的int元组,将类型注解改为Tuple[int, ...]:
from typing import Tuple from pydantic import BaseModel class Model(BaseModel): test_field: Tuple[int, ...]
此时实例化Model(test_field=(1,2))可正常通过验证,也支持更长的元组(如(1,2,3))。
方案2:指定固定长度的元组
如果业务逻辑要求test_field必须是固定长度(比如2个元素),直接明确标注长度:
from typing import Tuple from pydantic import BaseModel class Model(BaseModel): test_field: Tuple[int, int]
这种情况下只有传入长度为2的int元组才会通过验证。
内容的提问来源于stack exchange,提问作者tobias
相关产品推荐
相关产品推荐

