Python 3和SQL insert查询结果出现错误;列计数不为';t在“行”处匹配值计数;

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

我正在尝试将数据从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)

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

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

INSERT INTO table (column_name) VALUES (val);

您正在让SQL知道您想要将该特定行的列名称映射到val。因此,您需要确保第一个括号中的列数与第二组括号中的值数相匹配。

感谢您的回答-但在我的情况下,如何使用insert指定。所以csv文件有时有1200行或更多行。我如何陈述我对每一列的sql查询?我不确定我是否理解你的问题。是否希望它基于csv的列动态插入?是。假设我插入的表中有9列,文件中有9列。我想从文件中插入这些列。所以我要问的是,我必须写下所有列的名称吗?以及如何获取值。