【发布时间】:2014-03-21 23:37:57
【问题描述】:
当我尝试读取使用 Selenium WebDriver 下载的 CSV 文件时,我收到了 Illegal quoting in line 1. (CSV::MalformedCSVError)。
CSV.foreach( "foo.csv" ) do |row|
# anger :(
end
但是当我复制内容并将其粘贴到一个新文件中并再次保存时,它工作得很好:
CSV.foreach( "bar.csv" ) do |row|
# works fine
end
这是 CSV 的前 5 行,以防万一……
"Name","W","L","ERA","GS","G","SV","IP","H","ER","HR","SO","BB","WHIP","K/9","BB/9","FIP","WAR","playerid"
"Craig Kimbrel","5","1","1.79","0","65","35","65.0","42","13","4","95","19","0.95","13.16","2.65","1.84","1.7","6655"
"Aroldis Chapman","2","1","1.93","0","30","27","30.0","18","6","2","47","12","0.99","14.24","3.56","2.22","0.6","10233"
"Greg Holland","5","2","2.39","0","65","34","65.0","47","17","5","83","21","1.05","11.53","2.95","2.48","1.3","7196"
"Kenley Jansen","5","2","2.16","0","65","32","65.0","46","16","6","86","19","1.00","11.97","2.64","2.51","0.9","3096"
我无法找到或想出一种方法来正确读取我的原始硒下载 CSV。有人遇到过这个问题,或者对我的数据有什么问题有任何想法,或者我如何以编程方式解决这个问题?
谢谢!
【问题讨论】:
-
你确定不需要escape the double quotes吗?
-
CSV 中有任何杂散的不可见字节吗?您可以
cat -vet foo.csv | head快速查看。 -
这只是一个疯狂的猜测,但我想说的是,由于第一行的引用问题,您尝试通过 Selenium WebDriver 下载的文件格式错误。
-
我在您发布的文件中没有看到任何非法引用,但这并不意味着它不存在:它可能是不可打印的字符或导致问题的 Unicode 字节顺序标记。这也可以解释为什么复制和粘贴“修复”了问题。