2016-12-29 77 views
0

继承人我的代码CSV格式不正确的错误

task priceupdate: :environment do 
    csvtoopen = open('') 
    csv = CSV.parse(csvtoopen, :headers=>true, quote_char: "\x00") 
    csv.each do |row| 
Stuff to do here 
    end 
    end 

我有一个问题,继承人的错误代码:

CSV::MalformedCSVError: Unquoted fields do not allow \r or \n (line 28010). 

任何想法,这是为什么不跑?

山姆

+2

你是怎么想出quote_char的?这是零字节,但你的数据显然有'''引号? – phoet

+0

嗨,我离开它,因为它是一个错误的另一个修复! – samnymr12

回答

0

CSV文件是有效的(但它有一个UTF-8 BOM开始)。

所有字段都被引用,所以您确实需要使用"作为quote_char

现在解析器认为你有多行字段,并且因为它们没有被引用(与\x00),你会得到一个错误。

+0

所以我改变了字符从'\ x00'到''“”'和我得到了这个错误'CSV :: MalformedCSVError:第1行非法引用。' – samnymr12

+0

对不起,我的意思是'''''' – samnymr12

+0

@ samnymr12这可能是由于UTF-8 BOM:您的文件以3字节0xef 0xbb 0xbf开头。因此,您可能需要告诉解析器存在物料清单(或者可能以UTF-8模式打开)。 –