2016-08-04 1 views
0

:データベースの私はsqliteの列に以下のリストから情報を挿入するつもりです

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

列AAは、リストAの情報を持っている必要があり、列BBは、リスト内の情報を持っている必要がありますb、および列CCはリストcの情報を持つ必要があります。

これは私のコードです:

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) 

エラーはこれです:あなたはc変数を影にしている

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

答えて

2

。それはもはやオープンされたカーソルを参照していない:

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

これは意味のある変数名を持っている多くの理由の一つです。私はあなたがcursorとしてカーソルを名前の場合は、このエラーをしたことはないだろう:

cursor = conn.cursor() 

またPyCharmのような近代的なIDEが早期にこれらのエラーをキャッチすることができることに、注意してください。

enter image description here

+0

@ありがとうございましたalecxe – Mary

関連する問題