Python - 使用sqlite3将文件名插入数据库

时间:2015-05-23 19:26:36

标签: python sqlite

我在我的数据库中创建了这个表:

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)

1 个答案:

答案 0 :(得分:2)

如果我没弄错的话,cur.execute()函数将参数的元组作为其第二个参数。它将您的value参数视为元组,在本例中为26个字符长。要使它成为一个元组,只需添加一个逗号!

cur.execute("""INSERT INTO VIDEO(ID) VALUES(?)""", (video,))