【问题标题】:Python can't read mysql csv dumpPython 无法读取 mysql csv 转储
【发布时间】:2016-09-20 11:09:16
【问题描述】:

我正在尝试读取 mysql csv 转储,但不断出现错误。我看到阅读了一些问题,但无法开始工作。

在mysql中:

SELECT * FROM products INTO OUTFILE 'products.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

在 Python 中:

我试过了:

import csv
with open('products.csv', 'r') as csvfile:
    data = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in data:
        print ', '.join(row)

得到:

错误:在未引用的字段中看到换行符 - 你需要打开 通用换行模式下的文件?

并尝试过:

import csv
with open('products.csv', 'rU') as csvfile:
     data = csv.reader(csvfile, delimiter=',', quotechar='"')
     for row in data:
         print ', '.join(row)

它有效,但它拆分了包含换行符的单元格

并尝试过:

pandas.read_csv('products.csv')

得到:

pandas/parser.pyx 在 pandas.parser.TextReader.read (pandas/parser.c:7988)()

pandas/parser.pyx 在 pandas.parser.TextReader._read_low_memory (pandas/parser.c:8244)()

pandas/parser.pyx 在 pandas.parser.TextReader._read_rows (pandas/parser.c:8970)()

pandas/parser.pyx 在 pandas.parser.TextReader._tokenize_rows (pandas/parser.c:8838)()

pandas/parser.pyx 在 pandas.parser.raise_parser_error (pandas/parser.c:22649)()

CParserError:标记数据时出错。 C 错误:预期有 29 个字段 第 25 行,看到 39

帮助任何人?

【问题讨论】:

  • 有什么理由不使用 mysql 的 LOAD DATA 命令?
  • 我正在尝试从mysql中导出数据,而不是插入它
  • 这让事情变得像泥巴一样清晰。为什么不直接从python连接mysql?你已经从 mysql 导出,所以你有一个 csv 文件
  • 从 csv 文件中粘贴一些原始文本(几行)也会很有帮助。\

标签: python mysql csv


【解决方案1】:

我刚刚遇到了同样的问题。我还通过指定 escapechar 来解决它,例如:

data = csv.reader(csvfile, delimiter=',', quotechar='"', escapechar='\\')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2018-02-01
    • 2014-07-25
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2020-03-23
    相关资源
    最近更新 更多