当前位置: 首页 > 面试题库 >

Python-sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,并且提供了74

孔志强
2023-03-14
问题内容
def insert(array):
    connection=sqlite3.connect('images.db')
    cursor=connection.cursor()
    cnt=0
    while cnt != len(array):
            img = array[cnt]
            print(array[cnt])
            cursor.execute('INSERT INTO images VALUES(?)', (img))
            cnt+= 1
    connection.commit()
    connection.close()

我无法弄清楚为什么这会给我错误,我尝试插入的实际字符串长度为74个字符,它是:“ / gifs / epic-fail-photos-there-i-fixed-it-aww-man-the -tire-pressures-low.gif”

在插入它之前,我曾尝试过str(array [cnt]),但同样的问题也在发生,数据库只有一列,这是一个TEXT值。

我已经待了好几个小时了,无法弄清楚到底发生了什么。


问题答案:

你需要传递一个序列,但是你忘记了使参数成为元组的逗号:

cursor.execute('INSERT INTO images VALUES(?)', (img,))

没有逗号,(img)只是一个分组表达式,而不是一个元组,因此该img字符串被视为输入序列。如果该字符串的长度为74个字符,那么Python会将其视为74个单独的绑定值,每个绑定值长。

>>> len(img)
74
>>> len((img,))
1

如果发现它更易于阅读,则还可以使用列表文字:

cursor.execute('INSERT INTO images VALUES(?)', [img])


 类似资料:
  • 问题内容: 我只是熟悉Apache JackRabbit。我已经完成了一些用于文档管理的多用户存储库。 如果有人同时使用它们,您能回答这些问题吗? ModeShape是否以某种方式链接到JBoss?我对JBoss AS或任何其他JBoss工具没有太多经验。我看到了对tomcat的支持,但是有很多JBossy的东西 文档说将来的发行版应该具有UI集成,这还有很长的路要走吗?它将是什么样的UI集成?是

  • 问题内容: 当使用pywin的win32api时,我得到的光标位置值不正确。我的屏幕分辨率为1920x1080,但是当我使用GetCursorPos()时,左上角为(0,0),右下角为(1535,863)。我使用的代码如下: 我正在Windows 10上使用python 2.7进行尝试,但在Windows 8上的python 2.6中也遇到了此错误。是否有解决方案或解决此问题的方法? 问题答案:

  • 问题内容: 我在从golang的if语句中返回函数的预期return语句时遇到麻烦。 我提供了以下代码: 主函数是否应该打印出随机函数返回的字符串值?我得到的是 有人知道如何实现这一目标吗? 问题答案: 即使该函数从未返回值,您也必须在末尾添加一个: http://play.golang.org/p/XFsPL2G15R

  • 当我运行MVN-V时,会出现以下错误: 因此,我不明白为什么Maven版本检查指向不存在的文件夹。

  • web3.currentProvider属性返回当前在用的通信服务提供器,如果没有的话则返回null。 调用: web3.currentProvider web3.eth.currentProvider web3.shh.currentProvider web3.bzz.currentProvider ... 返回值: Object: 当前在用的服务提供器,或者null。

  • 本文向大家介绍WinForm实现为ComboBox绑定数据源并提供下拉提示功能,包括了WinForm实现为ComboBox绑定数据源并提供下拉提示功能的使用技巧和注意事项,需要的朋友参考一下 本文实例展示了WinForm实现为ComboBox绑定数据源并提供下拉提示功能,这是一个非常有实用价值的功能,具体实现方法如下: 主要功能代码如下: 使用示例: 代码运行效果如下: