我试图使用Python代码填充SQLite3数据库,但我收到错误。下面是代码片段。当我运行这个并尝试提交我的列表'L2'时,我得到了
“错误提供的绑定数量不正确。当前语句使用3,并且提供了10个。”
因此,当我将其更改为包含所列项目的名为“red”的列表时(在下面的代码中),我仍然会收到错误...这次“当前语句使用3,并且提供了2个”。我可以将列表'red'的内容更改为我想要的任何内容,但它仍然有相同的错误!!
因此,显然识别“绑定”以及如何计算它们存在问题。
Code is:-
import sqlite3
con = sqlite3.connect('Sequences.db')
cur = con.cursor()
cur.execute('DROP TABLE test2')
cur.execute('''CREATE TABLE test2
(seq_id TEXT, sequence TEXT, qual_score TEXT)''')
f = ('path to file')
motif = '@HWI'
flags = ['+', '<', ',', '?', '>']
with open(f, 'r') as df:
data = df.readlines()
L2 = list()
for line in data:
line = line.strip()
if motif in line:
L2.append(line)
elif not any(flag in line for flag in flags):
L2.append(line)
else:
if any(flag in line for flag in flags[1:]):
L2.append(line)
red = ['green', 'blue', 'happy']
cur.executemany('INSERT into test2 VALUES (?,?,?)', red)
del L2[:]
print 'END'
con.comitt()
con.close()
f.close()
答案 0 :(得分:0)
知道了!我需要将每行包含在列表内的元组中。
所以,对于最终的代码块,它应该是:
else:
if any(flag in line for flag in flags[1:]):
L2.append(line)
L2 = tuple(L2)
L3 = []
L3.append(L2)
cur.executemany('INSERT into test2 VALUES (?,?,?)', L3)
con.commit()
del L2[:]
print 'END'