基本上我希望能够选择使用x ... in范围(y数量)的数字量并将它们注入SQLite数据库。但是我收到以下错误:
line 17, in <module>
values (?)""") (number)
sqlite3.ProgrammingError: Incorrect number of bindings supplied.
The current statement uses 1, and there are 0 supplied.
这是我的无效代码。所有输入都表示赞赏。:
import sqlite3
conn = sqlite3.connect("usernames.sqlite")
c = conn.cursor()
c.execute('''create table numbers (number)''')
for number in range(21):
# Insert a row of data
c.execute("""insert into numbers
values (?)"""),(number)
# Save (commit) the changes
conn.commit()
# We can also close the cursor if we are done with it
c.close()
答案 0 :(得分:1)
执行在“?”的情况下取值元组参数,所以你需要写:
c.execute("""insert into numbers values (?)""", (number,))
(number,)
是一种使用一个元素定义元组的方法。
顺便说一句,您可以使用executemany方法更有效地执行此操作:
c.executemany(
"""insert into numbers values (?)""",
[(number,) for number in range(21)]
)
答案 1 :(得分:0)
你在values (?)"""),(number)
中有一个错位的封闭式按钮。
不知道为什么这不是语法错误。这是您使用的确切代码吗?