更快的CSV错误/Library/Ruby/Gems/1.8/gems/fastercsv-1.5.4/lib/faster_csv.rb:1641:in`shift'

时间:2011-10-22 11:30:16

标签: ruby-on-rails ruby fastercsv

新手来红宝石这是我的第一个项目,我正在使用FasterCSV Gem并且非常喜欢速度。

我发现一个问题,当一个字段太长时会引发以下错误:

/Library/Ruby/Gems/1.8/gems/fastercsv-1.5.4/lib/faster_csv.rb:1641:in“shift”:FasterCSV :: MalformedCSVError(FasterCSV :: MalformedCSVError)

错误在第二行第一行被正确读取:-)

“1013197145”,“PSION HU6020手带”,“1”,“1”,“10”

“1013197542”,“HP ProBook NA920EA_KT931AT 39.6 cm(15.6”)笔记本电脑 - Intel Core 2 Duo T6570 2.10 GHz - 1366 x 768 WXGA显示屏 - 2 GB RAM - 250 GB HDD - DVD-Writer LightScribe - Intel GMA 4500MHD显卡卡 - 蓝牙 - 网络摄像头 - 正版Windows Vista商务 - 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

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

我怀疑这与FasterCSV在长字符串上窒息以及项目描述的“(15.6”)“部分中具有英寸字符的所有内容无关 - 因为它与引号相同,它终止了CSV值因此,制作格式错误的CSV行.FasterCSV is designed to be strict关于此类事情。