Ruby CSV 캡처 헤더 위에 필요하지 않은 행이있는 경우 처리

2221 단어 CSV루비Rails

소개



CSV 캡처 처리를 만드는 것은 괜찮습니까?
가끔 첫 번째 줄이 헤더가 아닌 CSV 데이터가 있습니까?
그게 뭐야?
왜 그런 일을 하는지 모르겠습니다만, 받아들여야 하지요? (사명감)

어떤 데이터?



이런 데이터


구현



1, 2행째를 스킵 해 행을 배열로서 취득하는 것만이라면 단순합니다만,
CSV.foreach와 마찬가지로 row['헤더 이름']으로 데이터를 검색할 수 있도록 하려면 한 가지 궁리가 필요합니다.
# CSVをオープン
csv = CSV.open(
  path,
  undef: :replace,
  replace: '?'
)

# ヘッダの上に邪魔な行が2行あるので除去
csv.readline
csv.readline

# ヘッダを退避
header = csv.readline

csv.each do |row|
  # CSV.foreachと同じようなデータの取り方にパース
  row = CSV.parse_line(row.join(','), headers: header)
end

결론



방해가 되는 행이 있거나 없을 경우의 처리는 좋게 해 주세요.

블로그에서 보고 싶은 분은 이쪽
Ruby CSV 캡처 헤더에 필요하지 않은 행이있는 경우 처리

좋은 웹페이지 즐겨찾기