新手来红宝石这是我的第一个项目,我正在使用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
任何帮助都会非常感激。
答案 0 :(得分:1)
我怀疑这与FasterCSV在长字符串上窒息以及项目描述的“(15.6”)“部分中具有英寸字符的所有内容无关 - 因为它与引号相同,它终止了CSV值因此,制作格式错误的CSV行.FasterCSV is designed to be strict关于此类事情。