错误绑定参数0:可能不支持的类型

use*_*626 8 python sqlite python-3.x

我似乎无法弄清楚我的代码有什么问题,但我一直得到:

error "binding parameter 0 - probably unsupported type". 
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

last = 'EBERT'

sakila = connect("sakila.db")
res = sakila.execute("SELECT first_name, last_name FROM customer WHERE last_name = ?",[(last,)])

for row in res:
    print(row)
Run Code Online (Sandbox Code Playgroud)

当我EBERT在查询中的' '并且没有设置为变量时,它工作正常,所以我知道这是元组语法或其他问题.我已经尝试过没有括号,第二个变量first_name,有和没有单独定义的光标,基本上我能想到的每一种方法,我已经研究了几个小时但没有任何地方,所以任何帮助都将超级赞赏.

Anu*_*raz 9

我遇到了同样的错误,发现我的数据类型不匹配。然后我将其转换为字符串;

cursor.execute('''INSERT INTO employees VALUES (?);''', (str(data[0]), ))
Run Code Online (Sandbox Code Playgroud)

效果很好。希望这对某人有帮助。


fal*_*tru 5

嵌套列表,元组用于executemany,而不用于execute

传递包含参数的平面列表(或元组)。

res = sakila.execute(
    "SELECT first_name, last_name FROM customer WHERE last_name = ?",
    (last,))
Run Code Online (Sandbox Code Playgroud)

要么

res = sakila.execute(
    "SELECT first_name, last_name FROM customer WHERE last_name = ?",
    [last])
Run Code Online (Sandbox Code Playgroud)