我正在使用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,所以非常感谢任何建议。谢谢!
答案 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