2013-03-27 37 views
0

我用java寫入並創建一個csv文件。由於某些字段中有「,」作爲值的一部分,我用'「''((如」allen,jade「,」123「,」12 street「))括住每列。所以在我的CSV文件中的值的樣子:處理/編輯大文件中的特殊字符(> 2GB)

「山坳值」,「列B值」 ......

現在,當我試圖將此文件上傳到一個Postgres(9.1)使用數據庫 從'filename.csv'DELIMITER','CSV; 我收到了一個錯誤消息:最後一次預期的列之後的額外數據。

我檢查是否將其顯示的錯誤的記錄,它具有有一欄「'作爲其值的一部分

確切地說這是怎麼是:

」霍爾斯韋爾的衆耶和華見證人基督城「,」基督城「,」哈爾斯韋爾耶和華見證人會衆「

我猜這是因爲第一列裏的'''裏面有'''這個錯誤。

如果我錯了,請糾正我,如果你能幫我解決這個問題,那將是非常棒的。

回答

1

在創建CSV文件時,您應該先將任何已存在的引號(替換爲"\")轉義出來,然後再將它們包裝在自己的引號中。

+0

我明白,但有什麼方法可以處理現有的csv文件,而無需再次生成它,因爲它是一個巨大的文件,需要很長時間才能生成。 – CCGooner 2013-03-27 05:00:33

+0

如果需要時間來生成,可能還需要很長時間來處理。此外,沒有明確的方法來識別您從之前存在的報價插入的報價。例如,假設您的傳記字段包含「我喜歡」「戰爭與和平」,「Ana Karenina」和其他托爾斯泰作品「 - 逗號周圍的引號與插入的引號無法區分。 – Amadan 2013-03-27 05:03:42

+0

我正在考慮一次讀取一行文件。然後將行分割爲幾部分,考慮','作爲分隔符,然後將所有出現的'''更改爲'\'',這些不是分割項的第一個和最後一個字符。它應該工作嗎? – CCGooner 2013-03-27 05:09:09