python - 使用 python 脚本中的嵌入式查询将 CSV 文件转储到 MySQL 数据库

标签 python mysql csv python-2.7

我有一个 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 文件转储到数据库的不同表中。对此有什么想法吗?

最佳答案

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

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

关于python - 使用 python 脚本中的嵌入式查询将 CSV 文件转储到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14834822/

相关文章:

python - 我的简单 python 脚本出错

python - 漂亮的 Soup Looping 元素,只有在当前元素及其父元素存在时才获取当前元素的文本

jquery - 是否可以使用 jquery 和 mysql 在数据库表中插入一条新记录?

mysql - 将数据库从 Postgres 迁移到 MySQL

csv - 如何使用外部架构(如 Avro)将 CSV 文件导入 HIVE?

python - 如何用 Python 将字典写入 Excel

Python 3.5.1 和 fdb 1.5.1 - fdb.fbcore.Cursor 对象位于 0x00175BB0

python - 使用卷积自动编码器从 2D 到 3D

MySQL count(*) 、Group BY 和 INNER JOIN

php - Windows csv和mac csv有什么区别?