2017-04-04 82 views
0

我正在使用一個簡單的程序來讀取CSV文件,不知何故我注意到當我使用EXCEL創建一個CSV或基於Windows的計算機去庫無法讀取它即使當我使用cat命令這隻能說明我在終端上最後一行,它總是會導致這個錯誤extraneous " in fieldGolang CSV閱讀:無關「現場錯誤

我研究一定程度上比我發現它在一定程度上關係到托架操作系統。 但我真的想問問如何使之間的回報差異通用csv閱讀器,我試着用pandas讀取相同的csv,並且讀取成功,但我無法使用Go代碼實現此功能。enter image description here

也是正確的CSV屏幕截圖這裏

Csv is working fine

+0

這裏回車並不重要。您的csv最後只有一個報價,在第一張圖片中可見,而在第二張圖片中看不到。 – mkopriva

+0

我糾正錯誤的快照仍然會拋出錯誤 –

+0

更改屏幕截圖不會更改數據源。你確定CSV確實沒有在任何地方包含額外的''' –

回答

1

你的文件清楚地表明,你已經有了在內容的最後一個額外的報價。雖然像pandas這樣的程序可能沒有問題,但我認爲它不是有效的csv所以去確實會返回一個錯誤。

的有什麼不對您的數據

簡單的例子:https://play.golang.org/p/KBikSc1nzD

更新:在您的更新和搜索的一點點,我不得不apoligize,回車確實重要,似乎是這裏THA罪魁禍首,Go似乎可以處理\r\n窗口變體,但不是\r之一。在這種情況下,您可以將bytes.Reader封裝到自定義閱讀器中,用\n字節替換\r字節。

下面是一個例子:https://play.golang.org/p/vNjzwAHmtg

請注意,該例子就是這樣,例如,它不處理所有可能的情況下,\r可能是一個合法的字節。

+0

感謝您指出錯誤的快照,但我糾正了快照,這種情況下失敗 –

+0

好的,在這種情況下,記錄錯誤'log.Printf(「%#v」,err)'應該告訴你哪行和什麼列不受歡迎的報價是,我會嘗試相應地更新我的答案。 – mkopriva

+0

是的,沒有標準庫中的一些標準的回車集。像我想實現一些通用的上傳,但我被阻止在這 –