0

我有一个 SQL 查询,它打开一个 csv 文件并将其转储到数据库表中。我正在尝试使用 python 脚本一次转储多个文件以在文件之间进行迭代。我尝试在脚本中嵌入相同的 SQL 查询,但它抛出了一个错误。

这是我的脚本。

import csv
import MySQLdb

connection = MySQLdb.connect(host='localhost',
    user='root',
    passwd='password',
    db='some_db')


cursor = connection.cursor()

query = """ LOAD DATA INFILE 'c:\\example.csv' INTO TABLE new_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' Lines terminated by '\n' IGNORE 1 LINES """

cursor.execute(query)

conenction.commit()
cursor.close()

由于某种原因,python 脚本在不同的位置查找 example.csv

这是抛出的错误:

raise errorclass, errorvalue
InternalError: (29, "File 'C:\\Documents and Settings\\All Users\\Application Data\\MySQL\\MySQL Server 5.5\\data\\example.csv' not found (Errcode: 2)")

任何帮助将不胜感激。我还在 stackoverflow 上搜索以帮助将 scv 文件转储到数据库的不同表中。有什么想法吗?

4

2 回答 2

1

您可能需要load data local语法来确保数据是相对于客户端而不是服务器读取的。改变

query = """ LOAD DATA INFILE 'c:\\example.csv' INTO TABLE new_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' Lines terminated by '\n' IGNORE 1 LINES """

query = """ LOAD DATA LOCAL INFILE 'c:\\example.csv' INTO TABLE new_table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' Lines terminated by '\n' IGNORE 1 LINES """
于 2013-02-12T15:07:31.930 回答
0

注意你的拼写!conenction.commit() 应该是 connection.commit()

于 2014-10-02T16:21:04.110 回答