我试图将数据从csv文件(位于本地桌面上)上传到远程SQL数据库。这是我的查询

dsn = "dsnname";pwd="password"
import pyodbc
csv_data =open(r'C:\Users\folder\Desktop\filename.csv')

def func(dsn):

    cnnctn=pyodbc.connect(dsn)
    cnnctn.autocommit =True
    cur=cnnctn.cursor()


    for rows in csv_data:

        cur.execute("insert into database.tablename (colname) value(?)", rows)


    cur.commit()
    cnnctn.commit()
    cur.close()
    cnnctn.close()
    return()

c=func(dsn)


问题是我所有的数据都上传到我指定的一个列中。如果我不指定col名称,它将不会运行。我的数据库表中有9个列,我想将此数据上传到单独的列中。

最佳答案

使用SQL插入时,需要确保告诉您要插入的列。例如,执行时:

INSERT INTO table (column_name) VALUES (val);


您要让SQL知道您要将该特定行的column_name映射为val。因此,您需要确保第一个括号中的列数与第二个括号中的值数匹配。

关于python - 具有SQL插入查询的Python 3导致错误“列数与行中的值数不匹配”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42890474/

10-08 21:54