2016-12-29 1 views
0

Heres는 내 코드CSV 형식이 잘못된 오류

내가 문제를 heres 오류 코드있어
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을 만들었습니까? 0 바이트이지만 데이터에 분명히' "'따옴표가 붙어 있습니까? – 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로 시작됩니다. 따라서 파서에게 BOM이 있는지 (또는 UTF-8 모드로 열려 있는지) 알려 줄 필요가있을 수 있습니다. –

관련 문제