我在將CSV文件上傳到MS SQL Server中的表格時遇到問題,CSV文件有25列,並且標題與SQL中具有25個列的表名相同。當我運行腳本時會拋出錯誤使用Python將CSV文件導入到SQL Server中
params arg (<class 'list'>) can be only a tuple or a dictionary
將此數據導入MS SQL的最佳方式是什麼? CSV和SQL表都具有完全相同的列名稱。
下面是代碼:
import csv
import pymssql
conn = pymssql.connect(
server="xx.xxx.xx.90",
port = 2433,
user='SQLAdmin',
password='xxxxxxxx',
database='NasrWeb'
)
cursor = conn.cursor()
customer_data = csv.reader('cleanNVG.csv') #25 columns with same header as SQL
for row in customer_data:
cursor.execute('INSERT INTO zzzOracle_Extract([Customer Name]\
,[Customer #]\
,[Account Name]\
,[Identifying Address Flag]\
,[Address1]\
,[Address2]\
,[Address3]\
,[Address4]\
,[City]\
,[County]\
,[State]\
,[Postal Code]\
,[Country]\
,[Category ]\
,[Class]\
,[Reference]\
,[Party Status]\
,[Address Status]\
,[Site Status]\
,[Ship To or Bill To]\
,[Default Warehouse]\
,[Default Order Type]\
,[Default Shipping Method]\
,[Optifacts Customer Number]\
,[Salesperson])''VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,)',row)
conn.commit()
cursor.close()
print("Done")
conn.close()
這是CSV文件的第一行是什麼樣子
您可以顯示CSV文件的第一行(或第一行的第一列...),以便我們可以看到它是什麼樣的? –
剛剛截圖了數據的樣子。 @SergeBallesta – Cesar
您應該複製CSV的文本,而不是截取Excel的截圖,這會刪除文件的分隔符 –