python
type_error
ai_generated
true
pydantic_core._pydantic_core.ValidationError: Order 模型验证错误:items 字段应为列表类型
pydantic_core._pydantic_core.ValidationError: 1 validation error for Order items Input should be a valid list [type=list_type, input_value='item1,item2', input_type=str]
ID: python/pydantic-validation-error-list-type
80%修复率
88%置信度
0证据数
2024-05-27首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 2.x | active | — | — | — |
根因分析
向列表类型字段传入了逗号分隔的字符串。Pydantic v2 不会自动将字符串拆分为列表。
English
A comma-separated string was passed to a list-typed field. Pydantic v2 does not split strings into lists automatically.
解决方案
-
96% 成功率
data['items'] = 'item1,item2'.split(',') -
94% 成功率
from pydantic import BaseModel, field_validator class Order(BaseModel): items: list[str] @field_validator('items', mode='before') @classmethod def split_items(cls, v): if isinstance(v, str): return v.split(',') return v
无效尝试
常见但无效的做法:
-
98% 失败
list() on a string iterates characters, producing ['i','t','e','m','1',',',...].
-
99% 失败
Security risk and fails because 'item1,item2' is not valid Python syntax for a list.