Python 3和SQL insert查询结果出现错误;列计数不为';t在“行”处匹配值计数;
我正在尝试将数据从csv文件(在本地桌面上)上载到远程SQL数据库。这是我的问题Python 3和SQL insert查询结果出现错误;列计数不为';t在“行”处匹配值计数;,python,mysql,sql-server,Python,Mysql,Sql Server,我正在尝试将数据从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() fo
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)
问题是,我所有的数据都上传到一个列中,这是我指定的。如果我不指定列名称,它将不会运行。我的数据库表中有9个列,我想将这些数据上传到单独的列中。使用SQL插入时,需要确保告诉您要插入的列。例如,当您执行以下操作时:
INSERT INTO table (column_name) VALUES (val);
您正在让SQL知道您想要将该特定行的列名称映射到val。因此,您需要确保第一个括号中的列数与第二组括号中的值数相匹配。感谢您的回答-但在我的情况下,如何使用insert指定。所以csv文件有时有1200行或更多行。我如何陈述我对每一列的sql查询?我不确定我是否理解你的问题。是否希望它基于csv的列动态插入?是。假设我插入的表中有9列,文件中有9列。我想从文件中插入这些列。所以我要问的是,我必须写下所有列的名称吗?以及如何获取值。