LoginSignup
3
1

More than 3 years have passed since last update.

Ruby CSV 取り込み ヘッダーの上にいらない行がある場合の処理

Last updated at Posted at 2019-05-29

はじめに

CSV取り込み処理を作ることって結構ありますよね?
たまに1行目がヘッダーではないCSVデータってありますよね?
あれ何なんでしょうね?
何でそんなことをするのかわからないんですけど、取り込まないといけないですよね?(使命感)

どんなデータ?

こんなデータ
image.png

実装

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取り込み ヘッダーの上にいらない行がある場合の処理

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1