2016-05-23 2 views
0

Я пытаюсь вставить список с данными в файл .db.
Ниже приведено расположение файла db.Python Вставить данные из списка в SQlite3

Ранг является INTEGER
описание TEXT

db layout

У меня есть следующий код Python ниже и SQLite запроса,
Я получаю сообщение об ошибке:

  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. 

Ниже приведен код python :

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 [: 10], которые являются строками, и ряд из диапазона (1,11) в дБ, но не могу пройти мимо этого сообщения об ошибке!

Ниже приведен формат списка SMH_LADDER [: 10]
[ 'String1', 'String2', 'String3', 'String4', 'String5', 'String6', 'String7', 'String8' , 'String9', 'String10']

Любая помощь будет оценена!

ответ

2

Вы не можете просто вставить два списка. Вам нужно создать серию операторов 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'. –

Смежные вопросы