如何解决sqlite3.ProgrammingError:绑定参数1不支持list类型错误
解决SQLite插入时的list类型绑定错误
错误根源很直接:你把site对应的输入值tb包装成了列表tbb = [tb],执行INSERT语句时又把这个列表作为第一个参数传给SQLite,但SQLite不支持直接绑定列表类型的数据,所以触发了ProgrammingError。
修正后的代码
import random import pyperclip as pc # 假设你用的是pyperclip做复制 lower = "abcdefghijklmnopqrstuvwxyz" upper = lower.upper() numbers = "0123456789" symbols = "@" # 别用all当变量名,它是Python内置函数,换个名字避免冲突 all_chars = lower + upper + numbers + symbols length = int(ipt['crt']) # 注意这里要加个点,是"".join而不是""join password = "".join(random.sample(all_chars, length)) pc.copy(password) tb = ipt['site'] # 直接传tb(单个值),不要传列表tbb cur.execute("INSERT INTO senhas(site, senha) VALUES(?, ?)", (tb, password)) print(tb)
额外提醒
- 避免使用
all这类Python内置关键字/函数名当变量名,容易引发隐性问题; - 你原代码里的
password =""join(...)少了个英文点,属于语法错误,修正后才能正常运行。
内容的提问来源于stack exchange,提问作者Renzo-M
相关产品推荐
相关产品推荐

