如何使用Python API迭代SQLite数据库?

时间:2011-07-25 04:43:34

标签: python sql

基本上我希望能够选择使用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()

2 个答案:

答案 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)中有一个错位的封闭式按钮。

不知道为什么这不是语法错误。这是您使用的确切代码吗?