使用Python3我试图读取一个文本文件并填充SQLite3表的第一列。 for循环和执行组合提供错误,我不太清楚出了什么问题。
import sqlite3
WORDLIST = 'words.txt' #list of words only
con = sqlite3.connect('dict.db')
cursor = con.cursor()
cursor.execute('DROP TABLE IF EXISTS dict')
cursor.execute('CREATE TABLE dict(word text, part text, definition text)')
con.commit()
with open(WORDLIST,'r') as dictionary:
for each_word in dictionary:
print(each_word)
cursor.execute('INSERT INTO rainbow_table VALUES (?)',(each_word,))
输入文件words.txt非常简单
Cat
Bruno
Movie
Truth
我还没有能够纠正运行时错误:
Traceback (most recent call last):
File "C:/dictdb.py", line 12, in <module>
cursor.execute('INSERT INTO dict_table VALUES (?)',(each_word,))
sqlite3.OperationalError: table dict_table has 3 columns but 1 values were supplied
答案 0 :(得分:1)
正如错误所示,数据库期望将3个值插入到您的表所具有的3列中,因为您没有指定要插入的列。根据此link,如果您只想插入三个值中的一个,则必须使用以下语法指定所需的列:
INSERT INTO dict_table (word_text) VALUES (?)