2016-09-20 4 views
0

Я пытаюсь прочитать дамп mysql csv, но продолжаю получать ошибки. Я видел некоторые вопросы, но не мог работать.Python не умеет читать mysql csv dump

в 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) 

и получил:

Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?

и попробовал:

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 in pandas.parser.TextReader.read (pandas/parser.c:7988)()

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

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

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

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

CParserError: Error tokenizing data. C error: Expected 29 fields in line 25, saw 39

Помощь кто-нибудь?

+0

Любая конкретная причина не использовать команду LOAD DATA от mysql? – e4c5

+0

Я пытаюсь экспортировать данные из mysql, а не вставлять его – user4421975

+0

, что делает вещи ясными как грязь. Почему бы не напрямую подключиться к mysql из python? Вы уже экспортировали из mysql, поэтому у вас есть файл csv – e4c5

ответ

0

Я просто столкнулся с той же проблемой. Я решил это, также указав escapechar, например:

data = csv.reader(csvfile, delimiter=',', quotechar='"', escapechar='\\') 
Смежные вопросы