Python无法读取mysql csv转储

时间:2016-09-20 11:09:17

标签: python mysql csv

我试图读取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.TextReader.read中的pandas / parser.pyx   (熊猫/ parser.c:7988)()

     

pandas.parser.TextReader._read_low_memory中的pandas / parser.pyx   (熊猫/ parser.c:8244)()

     

pandas.parser.TextReader._read_rows中的pandas / parser.pyx   (熊猫/ parser.c:8970)()

     

pandas.parser.TextReader._tokenize_rows中的pandas / parser.pyx   (熊猫/ parser.c:8838)()

     

pandas.parser.raise_parser_error中的pandas / parser.pyx   (熊猫/ parser.c:22649)()

     

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

帮助任何人?

1 个答案:

答案 0 :(得分:1)

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

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