如何修复SQLite中的ValueError: 参数类型不支持问题
解决SQL INSERT时的ValueError及scores字段为NULL问题
- 核心问题出在参数传递格式上:你写的
(hashedScore)不是合法的元组,Python会将其解析为单个变量而非参数集合,导致数据库驱动无法识别参数类型,触发ValueError: parameters are of unsupported type错误。这也是scores字段始终为NULL的原因——参数根本没正确传到SQL语句里。 - 修正方法很简单:给参数加个逗号,把
(hashedScore)改成(hashedScore,),这才是Python中单元素元组的正确写法。修正后的代码:
im.execute("INSERT INTO userss5 (scores) VALUES (?)", (hashedScore,))
- 额外检查:确认
self.score的类型和数据库scores字段的类型匹配(比如字段是INT就传整数,是FLOAT就传浮点数),如果self.score是自定义对象,得先转成数据库支持的基础类型再赋值给hashedScore。
内容的提问来源于stack exchange,提问作者byhite
相关产品推荐
相关产品推荐

