2016-07-21 2 views
0

일부 CSV 데이터를 가져 오려고하는데 어떤 이유로 올바르게 구성되지 않고 유효하지 않은 문자가 포함되어 있습니다. 예를 들어 sale_hash["location"]을 입력하면 nil을 반환합니다.CSV 데이터가 올바르게 구문 분석되지 않습니다.

{ 
    "date;day;time;location;station;washer;plate_number;O;I;W;total_price;;;;" 
    => "23/04/16;SATURDAY;15:11;ALPHAMEGA LIN;GROUNDFLOOR;NIKOLAS APOSTOLIDES;KKY333;YES;NO;NO;Û2", 
    nil => "95;;;;" 
} 

은 내가 한 모든 엑셀 스프레드 시트를 가지고 CSV로 내보낼했다 : 나는 이런 식으로 뭔가를 얻을 수

def self.import(file) 
    CSV.foreach(file.path, headers: true, encoding:'iso-8859-1') do |row| 
    sale_hash = row.to_hash 
    p sale_hash 
    end 
end 

: 여기

은 내가 사용하고있는 기능입니다. 내가 여기서 뭔가 잘못하고있는거야? 당신이 세미콜론 구분 기호로 수출과 같은

def self.import(file) 
    csv = CSV.read(file.path, headers: true, col_sep: ";") 

    csv.each do |row| 
    sale_hash = row.to_hash 
    p sale_hash 
    end 
end 
+0

것 같습니다 : 요르단과 무 덕분에 너무 짧은 오른쪽 있도록 –

+0

어디에서 바꿀 수 있습니까? –

+0

http://ruby-doc.org/stdlib-2.3.1/libdoc/csv/rdoc/CSV.html –

답변

0

는, 나는 다음과 같은 col_sep을 추가하여 작업을 얻었다. CSV 라이브러리의 기본값은 쉼표 구분 기호입니다.
관련 문제