[英]Python can't read mysql csv dump
I'm trying to read a mysql csv dump but keep getting errors. 我正在尝试读取mysql csv转储,但不断出现错误。 I saw read some questions but couldn't get working.
我看到阅读了一些问题,但无法正常工作。
in mysql: 在mysql中:
SELECT * FROM products INTO OUTFILE 'products.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
in Python: 在Python中:
I tried: 我试过了:
import csv
with open('products.csv', 'r') as csvfile:
data = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in data:
print ', '.join(row)
and got: 并得到:
Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
错误:在未加引号的字段中出现换行符-您是否需要在通用换行模式下打开文件?
and tried: 并尝试:
import csv
with open('products.csv', 'rU') as csvfile:
data = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in data:
print ', '.join(row)
and it worked but it splitted cells containing a newline 它可以工作,但它拆分了包含换行符的单元格
and tried: 并尝试:
pandas.read_csv('products.csv')
and got: 并得到:
pandas/parser.pyx in pandas.parser.TextReader.read (pandas/parser.c:7988)()
pandas.parser.TextReader.read中的pandas / parser.pyx(pandas / parser.c:7988)()
pandas/parser.pyx in pandas.parser.TextReader._read_low_memory (pandas/parser.c:8244)()
pandas.parser.TextReader._read_low_memory中的pandas / parser.pyx(pandas / parser.c:8244)()
pandas/parser.pyx in pandas.parser.TextReader._read_rows (pandas/parser.c:8970)()
pandas.parser.TextReader._read_rows中的pandas / parser.pyx(pandas / parser.c:8970)()
pandas/parser.pyx in pandas.parser.TextReader._tokenize_rows (pandas/parser.c:8838)()
pandas.parser.TextReader._tokenize_rows中的pandas / parser.pyx(pandas / parser.c:8838)()
pandas/parser.pyx in pandas.parser.raise_parser_error (pandas/parser.c:22649)()
pandas.parser.raise_parser_error中的pandas / parser.pyx(pandas / parser.c:22649)()
CParserError: Error tokenizing data.
CParserError:标记数据时出错。 C error: Expected 29 fields in line 25, saw 39
C错误:第25行中应有29个字段,看到39
Help anyone? 帮助任何人?
I just ran into the same problem. 我只是遇到了同样的问题。 I solved it by also specifying escapechar, eg:
我也通过指定escapechar来解决它,例如:
data = csv.reader(csvfile, delimiter=',', quotechar='"', escapechar='\\')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.