新手到ruby这是我的第一个项目,我使用的是FasterCSV宝石,我非常喜欢它的速度。
我发现了一个问题,当一个字段太长时,它会抛出下面的错误:
/Library/Ruby/Gems/1.8/gems/fastercsv-1.5.4/lib/faster_csv.rb:1641:in‘`shift':快速::错误错误(快速::错误FasterCSV)
错误在第二行第一行被正确读取:-)
"1013197145","PSION HU6020手带“,"1","1","10”
"1013197542","HP ProBook NA920EA_KT931AT 39.6厘米(15.6")笔记本-英特尔酷睿2双核T6570 2.10 GHz - 1366 x 768WXGA显示屏-2 GB内存- 250 GB硬盘- LightScribe刻录机-英特尔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任何帮助都将不胜感激。
发布于 2011-10-22 19:56:06
我怀疑这与FasterCSV在长字符串和商品描述中“(15.6”)部分的英寸字符中的一切都没有任何关系-因为它与引号相同,它终止csv值,从而导致格式错误的CSV行。FasterCSV is designed to be strict关于这类事情。
https://stackoverflow.com/questions/7859186
复制相似问题