Ekspor MySQL Cacat
Saya memiliki tabel mysql dengan 11 kolom. Saya mengekspornya ke .csv dengan:
SELECT *
FROM my_table
INTO OUTFILE /path/.../my_table.csv
FIELDS ENCLOSED BY '"'
TERMINATED BY ';'
ESCAPED BY ""
LINES TERMINATED BY '\n';
Sayangnya ketika saya mencoba membaca file dengan pandas di python dengan:
df = pd.read_csv('my_table.csv', sep=';', engine='python',
header=None, names=my_table_headers,
na_values='NULL', quoting=csv.QUOTE_NONE)
Saya mendapat:
ParseError: Expected 11 fields in line 1885764, saw 12
Mengapa ini terjadi?
EDIT (konteks lainnya):
Berikut tampilan tabel mysql saya:
Dan inilah file .csv yang dibuka dengan 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"
EDIT (ASK):
Oke jadi, seperti yang disarankan, saya pergi mencari baris yang memberi saya kesalahan dan ada ';' di tengah salah satu bidang, seperti:
"some guy's ; name"
jadi saya mengubah pemisah menjadi ','baik dalam ekspor MySQL dan kode python. Tapi kemudian baris lain memberi saya kesalahan yang sama jadi saya mengubah pemisah ke '\t'tempat yang diperlukan dan memilih .tsvfile yang baik-baik saja. Semuanya berjalan lancar kali ini. Semuanya baik-baik saja, itu berakhir dengan baik. Terimakasih semuanya.
Jawaban
Parameter Anda secara khusus tidak terlihat benar
lolos oleh ""
Silakan gunakan ini untuk csv, mereka biasanya berfungsi
SELECT *
INTO OUTFILE '/path/.../my_table.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
ESCAPED BY '"'
FROM my_table
Semua parameter tergantung pada datanya, ketika mendapatkan pesan itu, ia memberitahu Anda bahwa dalam satu kolom ada karakter seperti \ n atau ", jadi Anda harus mencoba parameter. Seperti ESCAPED BY '\'