Sqlalchemy操作Access数据库报Invalid SQL data type错误如何解决
问题原因
报错的核心原因是代码中给first字段赋值的语句末尾多了一个多余的英文逗号:test.first = "Test",。
Python语法规则中,单个值后跟随逗号会被自动封装为元组类型,因此你实际存入first字段的值是('Test',)元组,而Model定义中first字段为String字符串类型,写入数据时Access ODBC驱动无法将元组识别为合法的字符串参数,因此抛出SQL数据类型无效的报错。
如果该代码此前运行正常,大概率是近期修改代码时不小心误加了这个逗号。
修复方法
直接删除test.first = "Test",末尾的逗号即可,修正后代码如下:
... test = session.query(Table).filter(Table.test == test_var).first() test.first = "Test" test.second = "Test" session.commit() ...
修正后first字段被赋值为正常的字符串类型,参数绑定即可正常执行,不会再报类型错误。
内容的提问来源于stack exchange,提问作者Shark00n
相关产品推荐
相关产品推荐

