【发布时间】:2020-12-31 00:49:00
【问题描述】:
我有一个 11 列的 mysql 表。我将它导出到 .csv 并使用:
SELECT *
FROM my_table
INTO OUTFILE /path/.../my_table.csv
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY ""
LINES TERMINATED BY '\n';
不幸的是,当我尝试在 python 中使用 pandas 读取文件时:
df = pd.read_csv('my_table.csv', sep=';', engine='python',
header=None, names=my_table_headers,
na_values='NULL', quoting=csv.QUOTE_NONE)
我明白了:
ParseError: Expected 11 fields in line 1885764, saw 12
为什么会这样?
编辑(更多上下文):
这是我的 mysql 表的样子:
这是使用 TextEdit 打开的 .csv 文件
"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"
编辑(已解决):
好的,按照建议,我去寻找给我错误的行并且有一个';'在其中一个字段的中间,例如:
"some guy's ; name"
所以我在 MySQL 导出和 python 代码中都将分隔符更改为 ','。但随后另一行给了我同样的错误,所以我将分隔符更改为 '\t' 需要它并选择了一个 .tsv 文件,无论如何都可以。这次一切都很顺利。一切都很好,就一切都好。谢谢大家。
【问题讨论】:
-
第 1885764 行是什么样的?