2017-01-31 72 views
-1

我的OS和水珠模块的CSV文件的路径时,负载csv文件到MySQL:语法错误使用python

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") 

在此先感谢您。

回答

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])) 
+0

谢谢你回答我的问题。我更改了代码,它给了我另一个错误:_mysql_exceptions.InternalError:(2,“File'C:myprojectaaa.csv'not found(Errcode:2)”) – dorayin

+0

您在路径中缺少一些斜杠。它应该是'C:\ myproject \ aaa.csv' –

+0

我更新了答案以使用'os'模块获得'csv' –