SQLite3 - 在表中插入列表项

时间:2017-02-21 17:15:06

标签: python list sqlite

我正在使用python 3.5并尝试将列表元素插入表中。

列表已经定义:

list1 = [1,2,3...]
list2 = [1,2,3...]
list3 = [1,2,3...]
list4 = [1,2,3...]
list5 = [1,2,3...]

连接数据库:

conn = sqlite3.connect('database.db')
c = conn.cursor()

创建一个包含5列的表Table1:

def create_table():
     c.execute("CREATE TABLE IF NOT EXISTS Table1(Column1 TEXT, Column2 TEXT, Column3 TEXT,
Column4 TEXT, Column5 TEXT)")

将列表元素添加到表中:

def data_entry():
    Column1 = list1
    Column2 = list2
    Column3 = list3
    Column4 = list4
    Column5 = list5
    c.execute("INSERT INTO Master (Column1, Column2, Column3, Column4, Column5)
VALUES (?, ?, ?, ?, ?)", (Column1, Column2, Column3, Column4, Column5))
    conn.commit()

c.close()
conn.close()

当我运行它时,我得到:

ProgrammingError:提供的绑定数量不正确。当前语句使用5,并且提供了150。

循环是否更适合用于将每个项目列表作为指定列中的新行插入?如果是这样,我如何为sqlite3创建一个循环?

这是我第一次使用sqlite3,所以非常感谢任何建议。谢谢!

2 个答案:

答案 0 :(得分:1)

你必须遍历列表(假设它们的长度相同):

for i in range(len(list1)):
    c.execute("INSERT INTO Master (Column1, Column2, Column3, Column4,Column5)"
              " VALUES (?, ?, ?, ?, ?)",
              (list1[i], list2[i], list3[i], list4[i], list5[i]))

答案 1 :(得分:1)

您可以使用一些快捷方式,效率更高:

servlet