我试图将我的csv文件导入数据库。但是失败了。
# -*- coding: utf-8 -*-
import MySQLdb
class Database:
def __init__(self):
self.host = 'localhost'
self.user = 'root'
self.port = 3306
self.password = 'root'
self.db = 'test'
self.connection = MySQLdb.connect(self.host, self.user, self.password, self.db, self.port, local_infile = 1)
self.cursor = self.connection.cursor()
def insert_csv_test(self):
query = "LOAD DATA LOCAL INFILE ‘/Users/ankr/Desktop/output’ INTO TABLE details FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’"
self.cursor.execute(query)
self.connection.commit()
self.connection.close()
print("Done")
def close_connection(self):
self.connection.close()
database = Database()
database.__init__()
database.insert_csv_test()
database.close_connection()
它失败。在下面看到这个。
追溯(最近一次通话):文件“ test.py”,第30行,在
database.insert_csv_test()在insert_csv_test中的文件“ test.py”,第20行
self.cursor.execute(query)文件“ /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.12-intel.egg/MySQLdb/cursors.py”,
行202,在执行
self.errorhandler(self,exc,value)文件“ /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.12-intel.egg/MySQLdb/connections.py”,
第36行,在defaultErrorhandler中
引发错误类,错误值
_mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与您的MySQL服务器相对应的手册
在附近使用正确语法的版本
'\ xe2 \ x80 \ x98 / Users / ankr / Desktop / output \ xe2 \ x80 \ x99 INTO TABLE详细信息
在第1行的\ xe2 \ x80 \ x98,\ xe2 \ x80 \ x99 LI'终止的字段
任何帮助,将不胜感激。
最佳答案
这可能是一个天真的答案,但是我认为问题出在‘
字符上。它被解释为UTF-8字符。尝试用常规单引号-'
替换它。
关于python - 将本地infile csv加载到mysql数据库失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46807680/