我在我的数据库中创建了这个表:
cur.execute("""CREATE TABLE VIDEO(ID VARCHAR(128) NOT NULL PRIMARY KEY)""")
我的脚本应该做的是读取文件夹中的所有文件并将文件名放入VIDEO表(文件名是ID和主键):
def AddVideo(video):
con = sqlite3.connect("C:\\Users\\Francesco\\Desktop\\db\\Database.db")
with con:
cur = con.cursor()
cur.execute("""PRAGMA foreign_keys=ON""")
cur.execute("""INSERT INTO VIDEO(ID) VALUES(?)""", (video))
但我收到了这个错误:
cur.execute("""INSERT INTO VIDEO(ID) VALUES(?)""", (video))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 26 supplied.
现在26是我要添加的文件名中的字符数,所有文件都是从文件夹中读取的:
for video in os.listdir(VIDEO_FOLDER):
AddVideo(video)
答案 0 :(得分:2)
如果我没弄错的话,cur.execute()函数将参数的元组作为其第二个参数。它将您的value
参数视为元组,在本例中为26个字符长。要使它成为一个元组,只需添加一个逗号!
cur.execute("""INSERT INTO VIDEO(ID) VALUES(?)""", (video,))