首页 > 解决方案 > 在数据库Python中插入列表列表

问题描述

我正在尝试在数据库中插入列表列表,但出现此错误“cursor.execute('INSERT INTO Test VALUES(?, ?, ?)',list2) sqlite3.ProgrammingError: Incorrect number of bindings provided. 当前语句使用 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()

标签: pythondatabaselistsqlite

解决方案


迭代list2并对每个子列表中的值执行插入:

for sublist in list2:
    cursor.execute('INSERT INTO Test VALUES(?, ?, ?)', sublist)
connexion.commit()

推荐阅读