我必須解析一個以逗號分隔的 CSV 文件,其中包含不規則使用雙引號的列。文件條目如下所示:"1920,The False Road,American,Fred Niblo,""Enid Bennett, Lloyd Hughes"""1920,813,American,""Charles Christie, Scott Sidney"",""Wedgwood Nowell, Ralph Lewis, Wallace Beery, Laura La Plante"",mystery-+---+------------+-----------------------------------+----+| | A | B | C |+---+------------+-----------------------------------+----+| 1 | 1920 | Fred Niblo | ...|| 2 | 1920 | ""Charles Christie, Scott Sidney""| ...|+---+------------+-----------------------------------+----+正如您所看到的,第 4 列中第一個條目不帶引號,而第二個條目則帶有引號。有沒有辦法考慮這種不規范的使用?
1 回答

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
您的 csv 實際上應該如下所示才正確:
1920,The False Road,American,Fred Niblo,"Enid Bennett, Lloyd Hughes",
1920,813,American,"Charles Christie, Scott Sidney","Wedgwood Nowell, Ralph Lewis, Wallace Beery, Laura La Plante",mystery
(另請注意第一行末尾的額外逗號)
此處,包含逗號的字段用 括起來",您可以使用任何 csv 解析器(或庫)正確讀取該字段。
但不知何故,你的 csv 似乎已轉換為單字段 csv。整行都用引號引起來,現有的引號用另一個引號轉義(如預期的那樣)——除了每行末尾缺少一個結束引號。
要解決此問題,您可以首先在每行末尾添加引號,保存文件,然后將其解析為 csv,這將為每一行返回一個單元格(包含所有數據)。
然后,您可以將每個單元格的內容寫入另一個文件,然后再次將該文件解析為 csv,這將為您提供正確的數據。
添加回答
舉報
0/150
提交
取消