【发布时间】:2014-12-20 07:11:22
【问题描述】:
我有以下字符串 - 它不是完全用逗号分隔,但与 csv 数据集具有相同的效果:
response = "Date;Amount;Account;User\n2014-12-01;12.01;abcxyz;user1\n2014-12-01;10.09;fine;user2\n\r\n\t\t\r\n"
我尝试运行以下代码来解析它:
CSV.parse(response, :col_sep => ";", :row_sep => :auto)
但我收到以下错误:
CSV::MalformedCSVError: 未加引号的字段不允许 \r 或 \n
知道为什么会这样吗?
我也尝试过response.gsub!("\t", "") 看看是否是问题所在,但似乎没有帮助。
【问题讨论】:
-
我刚刚注意到CSV.new 文档提到
:auto作为row_sep的支持值,但没有提到col_sep。因为它正在拾取这个空白,所以它会停留在那里,并且您会收到这个错误,因为这些字段没有被引用。 -
抱歉打错了,还是出现同样的错误
-
我认为这是因为您交换了
row_sep和col_sep而没有交换;和response中的空白字符。