【发布时间】:2019-12-11 01:24:03
【问题描述】:
我正在尝试创建视频数据数据库,但遇到以下代码问题。数组数据将导入文件中的每个元组保存在列表中,但是我无法弄清楚如何消除错误并将文件中的数据行导入数据库
c.execute('''CREATE TABLE videodata(Video_Id TEXT, Uploader TEXT, Age INT, Category TEXT, Length INT,
Views INT, Rate INT, Ratings INT, Comments INT, Related_IDs TEXT, PRIMARY KEY(Video_ID))''')
with open('youtubedatafinal.txt', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter='\t')
for row in reader:
data.append(row)
c.executemany("""INSERT INTO 'videodata'('Video_Id', 'Uploader', 'Age', 'Category', 'Length', 'Views', 'Rate', 'Ratings', 'Comments', Related_IDs) VALUES (?, ?, ?, ?, ? ,? ,? ,? ,? ,?);""",(data,))
它给了我错误
sqlite3.ProgrammingError 提供的绑定数量不正确。当前语句使用 10,提供了 3169 个
【问题讨论】:
-
一个有趣的观察。如果我将代码更改为此 '''with open('youtubedatafinal.txt', 'r') as csvfile: reader = csv.reader(csvfile, delimiter='\t') for row in reader: data = [] data.append(row)''' 它说的是 1 而不是 3169
-
您确定数据有多行且列数相同吗?