sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用4,并提供8

时间:2015-12-11 09:27:16

标签: python csv sqlite

def read_csv():
    f = open("DriverInfo.csv", "at")
    f.truncate()
    f.close()
    database = []
    filename =  "DriverInfo.csv"
    f = open(filename,"rt")
    contents = f.read()
    rows = contents.split("\n")
    for each in rows:
        columns = each.split(",")
        if len(columns) < 2:
            return database
        else:
            database.append(columns)
            con = lite.connect(db)
            with con:
                cur = con.cursor()
                cur.execute(" INSERT INTO Speeders VALUES(?,?,?,?(columns))
                con.commit()

这是尝试做的是使用2个CSV文件并通过SQL链接它们,以便稍后在程序中匹配2条信息,但我已经尝试了很长时间并且它一直给我相同的错误消息,有4列使用,但提供了8,但当我将其更改为8个问号时,它告诉我:表Speeders有4列,但提供了8个值。我真的没有得到它,我会感激任何帮助

作为额外的说明; Speeders在CSV文件中使用4列,而DriverInfo使用3列

1 个答案:

答案 0 :(得分:1)

为了让这个问题没有在未回答的问题下列出,我觉得我应该从评论中回答。

请检查columns的内容,打印其长度(print len(columns)),其中必须包含4个项目。如果它不包含四个项目,则应更正创建columns的代码。