Ошибка программирования: неверное количество подключений

Может ли кто-нибудь сказать мне, где я сделал ошибку?

мой код:

import csv import sqlite3 import os import subprocess import glob #Connect to database conn = sqlite3.connect("Mpeg_editor_Final.db") try: conn.execute("drop table Mpeg_editor_Final") conn.execute("drop table edited") conn.execute("drop table ffmpeg") except sqlite3.OperationalError, e: print e.message #CREATE table in databse conn.execute("PRAGMA foreign_keys = 1") conn.execute("CREATE TABLE Mpeg_editor_Final (fileName VARCHAR(120), fileType VARCHAR(120), fileFolder VARCHAR(120))") conn.execute("CREATE TABLE edited (fileName VARCHAR(120), fileType VARCHAR(120), fileFolder VARCHAR(120))") conn.execute("CREATE TABLE ffmpeg (fileName VARCHAR(120), fileType VARCHAR(120), fileFolder VARCHAR(120))") #mpegEditorFinal file location mpegEditorFinal = 'C:\Mpeg_editor_Final' #list all folders and file in Mpeg_editor_Final mpegEditorFinaldirs = os.listdir(mpegEditorFinal) # tell file's extensions for i in mpegEditorFinaldirs: mpegEditorFinalext = os.path.splitext(i) #find current path for x in mpegEditorFinaldirs: mpegEditorFinalpath = os.path.dirname(x) #To write information into the Mpeg_editor_final table conn.executemany("INSERT INTO Mpeg_editor_Final (fileName, fileType, fileFolder) VALUES (?,?,?);", [mpegEditorFinaldirs , mpegEditorFinalext , mpegEditorFinalpath,]) conn.commit() 

Сообщение об ошибке:

  Message File Name Line Position Traceback <module> C:\Mpeg_editor_Final\database.py 36 ProgrammingError: Incorrect number of bindings supplied. The current statement uses 3, and there are 16 supplied. 

2 Solutions collect form web for “Ошибка программирования: неверное количество подключений”

Вы использовали executemany() , но вы предоставляете только параметры для одного выполнения. Либо вложите их дальше, либо используйте execute() .

 conn.executemany("INSERT INTO Mpeg_editor_Final (fileName, fileType, fileFolder) VALUES (?,?,?);", [[mpegEditorFinaldirs, mpegEditorFinalext, mpegEditorFinalpath]]) conn.execute("INSERT INTO Mpeg_editor_Final (fileName, fileType, fileFolder) VALUES (?,?,?);", [mpegEditorFinaldirs, mpegEditorFinalext, mpegEditorFinalpath]) 

Его потому, что conn.execute требует два параметра. Здесь вы havnt предоставили точные параметры.

См. Здесь. Он решает вашу проблему.

  • Python - sqlite3 не может выбрать сразу после update-commit - работает при повторной попытке
  • Параллельное письмо с sqlite3
  • Как вычесть значения из двух разных таблиц sqlite3 в python
  • Как я могу сбросить одну таблицу sqlite3 в python?
  • Как получить заполнители переменной длины в вызове Python для SQLite3
  • Использование пространственного расширения для SQLite в Windows
  • Сериализация Sqlite3 в Python
  • Python 3 SQLite3 - неправильное количество привязок
  • Python - лучший язык программирования в мире.