python
type_error
ai_generated
true
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%Fix Rate
88%Confidence
0Evidence
2024-05-27First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 2.x | active | — | — | — |
Root Cause
A comma-separated string was passed to a list-typed field. Pydantic v2 does not split strings into lists automatically.
generic中文
向列表类型字段传入了逗号分隔的字符串。Pydantic v2 不会自动将字符串拆分为列表。
Workarounds
-
96% success
data['items'] = 'item1,item2'.split(',') -
94% success
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
Dead Ends
Common approaches that don't work:
-
98% fail
list() on a string iterates characters, producing ['i','t','e','m','1',',',...].
-
99% fail
Security risk and fails because 'item1,item2' is not valid Python syntax for a list.