2016-05-23 16 views
0

データを含むリストを.dbファイルに挿入しようとしています。
以下は、dbファイルのレイアウトです。PythonリストからSQlite3にデータを挿入する

  Exception in Tkinter callback 
Traceback (most recent call last): 
    File "C:\Python27\lib\lib-tk\Tkinter.py", line 1536, in __call__ 
    return self.func(*args) 
    line 136, in DB_Entry 
    top_ten.execute('INSERT INTO Top_Ten VALUES(?,?)', [range(1,11),SMH_LADDER[:10]],) 
InterfaceError: Error binding parameter 0 - probably unsupported type. 
INTEGER
説明は、私はエラーを取得しています TEXT

db layout

私は、次の以下のPythonコードとSQ​​Liteのクエリを持って、

ランクされています

以下はPythonコードです:[:10]の文字列、およびDBに範囲(1,11)から数ありますが、このエラーメッセージを過ぎて取得することはできません

def DB_Entry(): 
# Create a connection to the database. 
connection = connect(database = "top_ten.db") 

# Get a cursor on the database. This allows you to execute SQL 
top_ten = connection.cursor() 

top_ten.execute('INSERT INTO Top_Ten VALUES(?,?)', [range(1,11),SMH_LADDER[:10]],) 

# Commit the changes to the database 
connection.commit() 

# Close the cursor. 
top_ten.close() 

# Close the database connection. 
connection.close() 

私はSMH_LADDERの内容を置くしようとしています!

以下

リストSMH_LADDER用のフォーマットである[10]
[ '文字列1'、 '文字列2'、 'はstring3'、 'String4'、 'String5'、 'String6'、 'String7'、 'String8' 、 'String9'、 'String10']

ご協力いただければ幸いです。

答えて

2

あなたはそのような2つのリストを挿入することはできません。一度に1組ずつ、各リストからペアを挿入する一連のINSERT文を作成する必要があります。 zipでペアを作成し、次にexecutemanyを使用して挿入を行うことができます。

values = zip(range(1,11), SMH_LADDER[:10]) 
top_ten.executemany('INSERT INTO Top_Ten VALUES(?,?)', values) 
+0

返信ありがとうございましたDanielさん、pastebinリンクをご覧ください。別のエラーメッセージが表示されます。 http://pastebin.com/7m1YTNX4 – deluxenathan

+0

注:Tkinterを使用しています – deluxenathan

+0

あなたは 'executemany'に変更しませんでした。 –

関連する問題