Exportação de MySQL malformada

Sep 13 2020

Eu tenho uma tabela mysql com 11 colunas. Exportei para .csv com:

SELECT *
FROM my_table
INTO OUTFILE /path/.../my_table.csv
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY ""
LINES TERMINATED BY '\n';

Infelizmente, quando tento ler o arquivo com pandas em python com:

df = pd.read_csv('my_table.csv', sep=';', engine='python',
                 header=None, names=my_table_headers, 
                 na_values='NULL', quoting=csv.QUOTE_NONE)

Eu recebo:

ParseError: Expected 11 fields in line 1885764, saw 12

Por que isso acontece?

EDITAR (mais contexto):

Esta é a aparência da minha tabela mysql:

E aqui está o arquivo .csv aberto com o TextEdit

"nm0000001";"Fred Astaire";"1899";"1987";"soundtrack";"actor";"miscellaneous";"tt0050419";"tt0053137";"tt0031983";"tt0072308"
"nm0000002";"Lauren Bacall";"1924";"2014";"actress";"soundtrack";NULL;"tt0071877";"tt0038355";"tt0117057";"tt0037382"
"nm0000003";"Brigitte Bardot";"1934";NULL;"actress";"soundtrack";"music_department";"tt0057345";"tt0054452";"tt0059956";"tt0049189"
"nm0000004";"John Belushi";"1949";"1982";"actor";"soundtrack";"writer";"tt0072562";"tt0080455";"tt0078723";"tt0077975"
"nm0000005";"Ingmar Bergman";"1918";"2007";"writer";"director";"actor";"tt0083922";"tt0050986";"tt0060827";"tt0050976"
"nm0000006";"Ingrid Bergman";"1915";"1982";"actress";"soundtrack";"producer";"tt0034583";"tt0036855";"tt0038109";"tt0038787"

EDITAR (RESOLVIDO):

Ok então, como sugerido, fui procurar a linha que me deu o erro e havia um ';' no meio de um dos campos, como:

"some guy's ; name"

então mudei o separador para ','a exportação do MySQL e o código python. Mas então outra linha me deu o mesmo erro, então mudei o separador para '\t'onde ele era necessário e optei por um .tsvarquivo que está bom de qualquer maneira. Tudo correu bem desta vez. Tudo está bem quando acaba bem. Obrigado a todos.

Respostas

1 nbk Sep 13 2020 at 04:48

Seus parâmetros não parecem certos, especialmente

escapou por ""

Use-os para csv, geralmente funcionam

SELECT *
INTO OUTFILE '/path/.../my_table.csv'
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
ESCAPED BY '"'
FROM my_table

Todos os parâmetros dependem dos dados, ao receber essa mensagem, ela informa que em uma coluna estão caracteres como \ n ou ", então você deve experimentar os parâmetros. Como ESCAPED BY '\'