with instalar fetchmany error descargar python sqlite sqlite3

python - instalar - sqlite3.ProgrammingError: Número incorrecto de enlaces suministrados. La declaración actual usa 1, y hay 74 suministrados



sqlite3 python install (1)

def insert(array): connection=sqlite3.connect(''images.db'') cursor=connection.cursor() cnt=0 while cnt != len(array): img = array[cnt] print(array[cnt]) cursor.execute(''INSERT INTO images VALUES(?)'', (img)) cnt+= 1 connection.commit() connection.close()

No puedo entender por qué me está dando el error. La cadena real que intento insertar tiene 74 caracteres de largo, es: "/ gifs / épica-falla-fotos-allí-yo-fijo-soy-a-hombre-el -tire-pressions-low.gif "

Intenté str (array [cnt]) antes de insertarlo, pero ocurre lo mismo, la base de datos solo tiene una columna, que es un valor de TEXTO.

He estado trabajando durante horas y no puedo entender qué está pasando.


Necesitas pasar una secuencia, pero olvidaste la coma para hacer que tus parámetros sean una tupla:

cursor.execute(''INSERT INTO images VALUES(?)'', (img,))

Sin la coma, (img) es solo una expresión agrupada, no una tupla, y por lo tanto, la cadena img se trata como la secuencia de entrada. Si esa cadena tiene 74 caracteres, Python ve eso como 74 valores de enlace separados, cada uno de ellos de carácter largo.

>>> len(img) 74 >>> len((img,)) 1

Si le resulta más fácil de leer, también puede usar un literal de lista:

cursor.execute(''INSERT INTO images VALUES(?)'', [img])