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

sqlite3将单个绑定字符串识别为多个绑定的报错问题如何解决?

报错触发原因

Python的语法规则中,仅用括号包裹单个元素不会被识别为元组类型,("blah") 本质就是普通的字符串对象。sqlite3 的 cursor.execute() 方法要求传入的参数绑定序列是可迭代对象,当你传入字符串时,程序会将字符串按单个字符拆分迭代:长度为4的blah会被拆为4个独立字符,被识别为4个绑定参数;长度为8的blahblah会被拆为8个独立字符,被识别为8个绑定参数,与SQL语句中声明的1个占位符数量不匹配,因此抛出对应错误。

修复方案

  • 方案一:明确声明单元素元组,在元素末尾追加逗号即可:
    将原调用代码修改为:
    cursor.execute("INSERT INTO program_types VALUES(NULL, ?);", ("blah",))
    
  • 方案二:使用列表传递绑定参数,规避单元素元组的语法歧义:
    调用代码可写为:
    cursor.execute("INSERT INTO program_types VALUES(NULL, ?);", ["blah"])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:24:03