You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyodbc Invalid Parameter Type错误求助:参数传递异常排查

解决sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('Invalid parameter type...')错误

从错误日志的参数部分可以直接定位问题:

[parameters: (<class 'int'>, 18)]

第一个参数传递的是int类型本身,而非请求中应该传入的具体数值,这就是导致数据库参数类型错误的核心原因。

问题根源

你的Pydantic Vote模型字段定义语法错误:

class Vote(BaseModel):
    post_id = int
    dir = conint(le=1)

在Pydantic模型中,字段类型声明必须使用冒号:,而等号=是用来设置字段默认值的。你用=将post_id直接赋值为int类对象,导致FastAPI解析请求时,vote.post_id并没有被正确赋值为请求体中的4,而是保留了int类型本身。

修复方法

将Pydantic模型的字段定义改为冒号语法:

class Vote(BaseModel):
    post_id: int
    dir: conint(le=1)

补充说明

修改后,FastAPI会正确解析请求体中的post_id数值,SQLAlchemy查询时就能传递正确的整数参数,数据库也能正常识别该类型,错误即可解决。另外从日志中第二个参数18来看,oauth2.get_current_user返回的用户ID是正常的整数,无需额外调整。

内容的提问来源于stack exchange,提问作者Duy Phan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:35:13