1
試圖批量插入使用pymssql這裏CSV文件的代碼:pymssql批量插入錯誤(蟒蛇)
conn = pymssql.connect(host='server', user='user', password='secret', database='My_Dev')
cur = conn.cursor()
load = 'BULK INSERT TempStaging FROM \'/home/dross/python/scripts/var/csv/' + f + '.csv\' WITH (FIRSTROW = 1,FIELDTERMINATOR = ',',ROWTERMINATOR = \'\\n\') GO")'
cur.execute(load)
當執行得到以下錯誤:
Traceback (most recent call last):
File "./uploadResults.py", line 46, in <module>
cur.execute(sweepload)
File "pymssql.pyx", line 447, in pymssql.Cursor.execute (pymssql.c:7092)
File "_mssql.pyx", line 1009, in _mssql.MSSQLConnection.execute_query (_mssql.c:11585)
File "_mssql.pyx", line 1040, in _mssql.MSSQLConnection.execute_query (_mssql.c:11459)
File "_mssql.pyx", line 1160, in _mssql.MSSQLConnection.format_and_run_query (_mssql.c:12652)
File "_mssql.pyx", line 203, in _mssql.ensure_bytes (_mssql.c:2733)
AttributeError: 'tuple' object has no attribute 'encode'
46號線是cur.execute線
使用帶有SQL三重引號。 '',',ROWTERMINATOR'不會被轉義 –
@Wayne Werner:使用以下內容: ** load ='BULK INSERT TempStaging FROM \'/ home/dross/python/scripts/var/csv /'+ filename +' .csv \'WITH(FIRSTROW = 1,FIELDTERMINATOR = \',\',ROWTERMINATOR = \'\\ n \')'** 這與您的意思相同嗎?(我是python初學者) – dross