Python 如何使用MySQLdb将文件加载到数据库表中?

Python 如何使用MySQLdb将文件加载到数据库表中?,python,mysql,mysql-python,Python,Mysql,Mysql Python,我的新.csv文件 cat new.csv ;0;1;2;3;date 0;CHF;svájci frank;1;281,80;2017-06-15 1;EUR;euro;1;306,74;2017-06-15 2;USD;USA dollár;1;274,36;2017-06-15 3;AUD;ausztrál dollár;1;208,68;2017-06-15 4;BGN;bolgár Leva;1;156,84;2017-06-15 我已经想到了这个解决办法 db = MySQLdb

我的新.csv文件

cat new.csv 
;0;1;2;3;date
0;CHF;svájci frank;1;281,80;2017-06-15
1;EUR;euro;1;306,74;2017-06-15
2;USD;USA dollár;1;274,36;2017-06-15
3;AUD;ausztrál dollár;1;208,68;2017-06-15
4;BGN;bolgár Leva;1;156,84;2017-06-15
我已经想到了这个解决办法

db = MySQLdb.connect(host="localhost",user="milenko",passwd="newyork",db="dbase")
cur = db.cursor()
query = "LOAD DATA INFILE '/home/milenko/new.csv' INTO TABLE valami FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\\\'"
cur.execute(query)
但现在我有问题了

 cur.execute(query)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/milenko/anaconda3/lib/python3.6/site-packages/MySQLdb/cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "/home/milenko/anaconda3/lib/python3.6/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "/home/milenko/anaconda3/lib/python3.6/site-packages/MySQLdb/cursors.py", line 247, in execute
    res = self._query(query)
  File "/home/milenko/anaconda3/lib/python3.6/site-packages/MySQLdb/cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "/home/milenko/anaconda3/lib/python3.6/site-packages/MySQLdb/cursors.py", line 374, in _do_query
    db.query(q)
当前执行(查询) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“/home/milenko/anaconda3/lib/python3.6/site packages/MySQLdb/cursors.py”,第250行,在execute中 errorhandler(self、exc、value) defaulterrorhandler中的第50行文件“/home/milenko/anaconda3/lib/python3.6/site packages/MySQLdb/connections.py” 提高错误值 文件“/home/milenko/anaconda3/lib/python3.6/site packages/MySQLdb/cursors.py”,执行中的第247行 res=自我查询(查询) 文件“/home/milenko/anaconda3/lib/python3.6/site packages/MySQLdb/cursors.py”,第411行,在查询中 rowcount=self.\u do\u查询(q) 文件“/home/milenko/anaconda3/lib/python3.6/site packages/MySQLdb/cursors.py”,第374行,在查询中 数据库查询(q)
如何解决这个问题?我已经检查了数据库(存在)。

当您直接在MySQL终端上运行查询时,首先检查您的查询是否正在运行。可能是因为前面的
在你的第二行前面没有任何内容?@Wondercricket你能提出解决方案吗?我以前从未使用过这种方法,但我的建议是验证你的列是否符合你的表设计。就像@BishwasMishra建议的那样,看看当您直接在MySQL中执行相同的查询时会发生什么l@Wondercricket好的,我来看看我的桌子设计。