我试图将数据从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/