如何在sqlite列中插入多个列表

时间:2016-08-04 16:33:32

标签: python sqlite python-3.x insert-into

我将把以下列表中的信息插入sqlite列:

# in class A:
self.bind('<<SomeEvent>>', lambda _: self.event_generate('<<AnotherEvent>>'))

# in class B:
self.bind('<<AnotherEvent>>', callback)

数据库的AA列应该具有列表a中的信息,列BB应该具有列表b中的信息,并且列CC应该具有列表c中的信息。

这是我的代码:

a = [1, 2, 3]
b = ['MAR', 'PAR', 'ZAR']
c = [1000, 2000, 3000]

错误是这样的:

import sqlite3
conn= sqlite3.connect('test.db') 
c = conn.cursor()

def create_table ():     
    c.execute ('CREATE TABLE IF NOT EXISTS test (AA INT, BB TEXT, CC INT)')
    print ("table was created")

create_table ()

a = [1, 2, 3]
b = ['MAR', 'PAR', 'ZAR']
c= [1000, 2000, 3000]

for i in range (len (a)):
    I= a[i]
    II= b[i]
    III= c[i]
    c.execute  ("INSERT INTO TEST (AA, BB, CC) VALUES  (?,?,?) ", I, II, III )

1 个答案:

答案 0 :(得分:2)

您已隐藏c变量。它不再引用打开的光标:

c = conn.cursor()
# ...
c = [1000, 2000, 3000]

这是有意义的变量名称的众多原因之一。如果您将光标命名为cursor

,我怀疑您是否会犯这个错误
cursor = conn.cursor()

另请注意,像PyCharm这样的现代IDE能够及早发现这些错误:

enter image description here