在Python循环中填充sqlite3数据库

时间:2013-05-09 14:20:39

标签: python sqlite

我构建了一个数据库但是当我遍历我的数据来填充它时,我收到以下错误:

OperationalError: no such column: tmp1

代码:

with con:
    cur = con.cursor()
    cur.execute("CREATE TABLE TESTTABLE(X REAL, Y REAL)")

for i in xrange(0,5):
   tmp1 =  array[i,0]
   tmp2 =  array[i,1]
   with con:
        cur.execute("""INSERT INTO TESTTABLE VALUES(tmp1,tmp2)""")

基本上我有一个大数组,我想转移到数据库。这可能不是最有效的方法。建议?

1 个答案:

答案 0 :(得分:2)

如果要将值插入一行,则需要将这些值作为SQL参数传递给.execute()调用:

with con:
    for i in xrange(0,5):
        tmp1 = array[i, 0]
        tmp2 = array[i, 1]
        cur.execute("""INSERT INTO TESTTABLE VALUES(?, ?)""", (tmp1, tmp2))

?个字符是参数,它们按顺序填充,从第二个参数到.execute(),一个元组的值。上面的代码会将数字0到4作为成对插入到数据库中。

SQL代码中的名称与您在Python中定义的名称具有 no 相关性,值只能显式传递。