读取带有ruby换行符的csv文件时出现的问题
我尝试了各种迭代:编码和选项,但没有成功。该文件是使用python csv模块创建的,并且quote_all选项处于启用状态。它使用默认的quote_char='”,编码='ascii';我在ruby脚本中匹配了这些设置,但每当我尝试读取此文件时,都会出现以下错误:读取带有ruby换行符的csv文件时出现的问题,ruby,csv,encoding,Ruby,Csv,Encoding,我尝试了各种迭代:编码和选项,但没有成功。该文件是使用python csv模块创建的,并且quote_all选项处于启用状态。它使用默认的quote_char='”,编码='ascii';我在ruby脚本中匹配了这些设置,但每当我尝试读取此文件时,都会出现以下错误: /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1894:in `block (2 levels) in shift': Missing or stray qu
/usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1894:in `block (2 levels) in shift': Missing or stray quote in line 1 (CSV::MalformedCSVError)
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1887:in `each'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1887:in `block in shift'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1849:in `loop'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1849:in `shift'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1791:in `each'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1805:in `to_a'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1805:in `read'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1411:in `block in read'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1354:in `open'
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/csv.rb:1411:in `read'
以下是csv文件的第1行:
"1","
因为第2行以换行开始
看起来这可能与源文件有关;切换一些选项使我了解了问题所在。我想提供一个对我有效的答案:我无意中删除了一些关键格式指令的标题。重新添加它们可以正常解析文件,但我不需要标题ers将由解析器处理,因此我必须找到一个选项,以便在不中断csv gem的情况下执行此操作,我在这里发现:。为什么这个标记为
python
?您可以添加多一点csv吗(只要输入保持相同的问题,请根据需要简化/匿名化)?有一个更完整的示例可以让这里的人复制您的错误并提出修复建议。所讨论的文件是使用python脚本创建的;可能不是相关的标记;我将使用更多的CSV进行更新,这些CSV实际上将此文件中的一行与另一行分隔开来?我认为这不是新行。