簡體   English   中英

使用python將csv文件加載到mysql時出現語法錯誤

[英]Syntax error when load csv file into mysql using python

我通過 os 和 glob 模塊得到了 csv 文件的路徑:

os.chdir('C:\myproject')
filename = glob.glob('*.csv')
new1 = str(filename[0]).strip("''") 
path1 =  'C:\myproject\\' + new1 

然后使用 MySQLdb 將其加載到數據庫中:

cursor.execute("LOAD DATA LOCAL INFILE {0} INTO TABLE intens FIELDS \
TERMINATED BY ',' IGNORE 1 LINES (ID, @timevar, intensity) set in_time = \
STR_TO_DATE(@timevar, '%m/%d/%Y %r'), record_ID =  \            
LAST_INSERT_ID()".format(path1,))

當我在 INFILE 命令之后直接粘貼路徑時,此代碼在 MySQL 中工作。 但是,我收到以下錯誤消息:

File "C:\Anaconda\lib\site-packages\MySQLdb\cursors.py", line 226, in execute self.errorhandler(self, exc, value)
File "C:\Anaconda\lib\site-packages\MySQLdb\connections.py", line 36, in defaulterrorhandler
raise errorvalue
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'C:\\myproject\\aaa.csv INTO TABLE intens FIELDS TER' at line 1")

先感謝您。

您在文件路徑周圍缺少撇號

[更新]

cursor.execute("LOAD DATA LOCAL INFILE `{0}` INTO TABLE intens FIELDS TERMINATED BY `,` IGNORE 1 LINES (ID, @timevar, intensity) set in_time = STR_TO_DATE(@timevar, `%m/%d/%Y %r`), record_ID = LAST_INSERT_ID()".format(glob.glob(r'c:\myproject\*.csv')[0]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM