python
type_error
ai_generated
true
Pydantic 验证错误:响应字段 'name' 期望字符串类型
pydantic.error_wrappers.ValidationError: 1 validation error for Item response -> name str type expected (type=type_error.str)
ID: python/fastapi-response-model-serialization-error
80%修复率
85%置信度
0证据数
2025-07-15首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.9 | active | — | — | — |
| 3.10 | active | — | — | — |
根因分析
FastAPI 路径操作返回的数据类型与响应模型不匹配
English
FastAPI 路径操作返回的数据类型与响应模型不匹配
解决方案
-
95% 成功率 确保返回数据与模型一致
class Item(BaseModel): name: str @app.get('/item', response_model=Item) def get(): return Item(name='test') -
90% 成功率 使用 response_model_exclude_unset
@app.get('/item', response_model=Item, response_model_exclude_unset=True) def get(): return {'name': 'test'}
无效尝试
常见但无效的做法:
-
禁用响应模型验证
70% 失败
失去了类型安全性
-
返回原始字典而不使用模型
60% 失败
文档生成可能出错