【发布时间】:2020-12-12 12:51:31
【问题描述】:
我正在尝试在数据库中插入列表列表,但出现此错误“ cursor.execute('INSERT INTO Test VALUES(?, ?, ?)',list2) sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用 3,提供了 200 个。” 在我的列表中有 201 个列表
import sqlite3
import csv
import pandas as pd
def Load():
list1 = []
comparar = []
conexion = sqlite3.connect("Pruebas")
cursor = conexion.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS Test ( "id" INT NOT NULL , "User" TEXT NOT NULL , "Followed" INT NOT NULL , PRIMARY KEY (id))')
cursor.execute("SELECT * FROM Test")
list1 = cursor.fetchall()
#print(data)
data = pd.read_csv(r'J:\\Proyectos y Trabajos\\Python\\Bot Instagram Follow\\Terminado BR\\Test.csv',delimiter=';')
tuples = [tuple(x) for x in data.values]
for i in tuples:
if i not in list1:
list1.append(i)
list2 = [list(elem) for elem in list1]
cursor.execute("DELETE FROM Test")
conexion.commit()
cursor.execute('INSERT INTO Test VALUES(?, ?, ?)',list2)
conexion.commit()
conexion.close()
Load()
【问题讨论】:
-
试试
cursor.execute('INSERT INTO Test VALUES(?, ?, ?)',(list2,))让我知道,但你也可以说print(list2)并将其包含在Q中 -
VALUES(?, ?, ?)表示您正在尝试插入三个值。list2是否正好有三个值? -
我现在收到此错误:文件“j:/Proyectos y Trabajos/Python/Bot Instagram Follow/Terminado BR/app.py”,第 23 行,在 Load cursor.execute('INSERT INTO Test VALUES(?, ?, ?)',(list2,)) sqlite3.ProgrammingError: 提供的绑定数量不正确。当前语句使用 3,并且提供了 1。
-
List2 是 201 个列表的列表,每个列表中都有 3 个值,例如 '[201, 'rodrigo_petrizzo', 0]'
-
这不是你插入它的方式。一种方法是遍历列表并单独插入每一部分。
标签: python database list sqlite