Newbie to ruby這是我第一個使用FasterCSV Gem的項目,絕對的愛速度。FasterCSV錯誤/Library/Ruby/Gems/1.8/gems/fastercsv-1.5.4/lib/faster_csv.rb:1641:in`shift'
我發現,當字段過長它拋出了以下錯誤一個問題:
/Library/Ruby/Gems/1.8/gems/fastercsv-1.5.4/lib/faster_csv.rb: 1641:在`移':FasterCSV :: MalformedCSVError(FasterCSV :: MalformedCSVError)
的錯誤是在第二行第一行被正確地讀取:-)
「1013197145」, 「PSION HU6020手帶」 ,「1」,「1」,「10」
「1013197542」,「HP ProBook NA920EA_KT931AT 39.6 cm 15.6英寸)筆記本電腦 - 英特爾Core 2 Duo T6570 2.10 GHz - 1366 x 768 WXGA顯示屏 - 2 GB RAM - 250 GB硬盤 - DVD刻錄機LightScribe - 英特爾GMA 4500MHD顯卡 - 藍牙 - 網絡攝像頭 - 正版Windows Vista Business - 5小時電池 - HDMI」, 「1」, 「1」, 「10」
這裏是我的代碼:
FasterCSV.foreach(file_path, {:col_sep=> colsep, :quote_char => char}) do |row|
my.query("INSERT INTO product_prices (partno,costpriceexvat,sku, supplierid) VALUES ('#{row[7]}', '#{row[8]}', '#{row[3]}','1')")
end
任何幫助,將不勝感激。
謝謝你似乎是正確的我去LOAD DATA LOCAL INFILE'公共/文件/ EN_UK_B_productdescriptions.csv'INTO表temp_productdescriptions而不是fastercsv: ( – ashga
很高興我的答案幫助查明瞭這個問題,但是,在他們目前的形式下,它和你的問題都沒有被廣泛用作未來對StackOverflow用戶的引用。你是否願意將你的問題改寫爲更通用的Ø f「FasterCSV :: MalformedCSVError」的可能原因也許)? – kopischke
對不起,新的這裏甚至沒有想到:S 基本上,我的行包含可能會被誤認爲列或報價終結符的文本中的字符。 FasterCSV無法像kopischke指出的那樣處理這個問題,所以我唯一的選擇是將數據直接批量插入到mysql中。 希望這可以清理一些東西! – ashga