2016-08-04 24 views
0

Ich werde einfügen Informationen aus der folgenden Liste in SQLite-Spalte einzufügen:Wie mehrere Listen in SQLite Spalte

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

Spalte AA der Datenbank sollte Informationen in der Liste haben Informationen in die Liste ein, sollte Spalte BB haben b und die Spalte CC sollte Informationen in der Liste c enthalten.

Dies ist mein Code:

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) 

Der Fehler ist dies:

c.execute ("INSERT INTO TEST (AA, BB, CC) VALUES (?,?,?) ", I, II, III) 
AttributeError: 'list' object has no attribute 'execute' 

Antwort

2

Sie die c Variable beschattet haben. Es bezieht sich nicht auf die geöffnete Cursor mehr:

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

Dies ist einer der vielen Gründe istsinnvolle Variablennamen zu haben. Ich bezweifle, dass Sie würde diesen Fehler gemacht haben, wenn Sie den Cursor als cursor genannt:

cursor = conn.cursor() 

Beachten Sie auch, dass die modernen IDEs wie PyCharm der Lage sind, diese Fehler zu fangen früh:

enter image description here

+0

@ Vielen Dank Alecxe – Mary