There's an echo in my head

日々のメモ。

CSVをYAMLに書き換える

標準添付のcsvライブラリの使い方をいつも忘れるのでメモっておく。

require "csv"
require "yaml"

hash = {}
csv = CSV.read(path_to_csv, headers: :first_row)
csv.each do |row|
  id = row["id"]
  hash["foo_#{id}"] = {
    "id" => id,
    "name" => row["name"],
    "value" => row["value"]
  }
end

File.open(path_to_yaml, "w") { |f| f.write(hash.to_yaml) }

:headersオプション便利。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。