こんにちは!kossyです!
さて、今回は
診療報酬情報提供サービス
で提供されている医薬品マスターCSVをYAMLファイル化するRubyスクリプトを書いてみたので、
ブログに残してみたいと思います。
環境
Ruby 2.6.3
コード全晒し
通常YAMLファイルを書き出す場合、YAML.dumpメソッドを用いるのですが、
iy_masters: - ["0", "0", "1234567", ...] - ["0", "0", "1234568", ...]
上記のように配列で1行ずつ定義することがどうしてもできず、
File.openで強引にやりたかったことを実現しています。
File.open('./tmp/iy_masters.yml', 'w') do |file| file.write 'iy_masters:' + "\n" CSV.read('./y.csv', encoding: 'Shift_JIS:UTF-8').each do |row| # マスターCSVがcurrentディレクトリにあることを想定 file.write ' - ' file.write row file.write "\n" end end
このスクリプトを使えば他のマスターファイルにも応用できるかと思います。
出来上がったYAMLファイルはこちら
https://drive.google.com/file/d/1ITPOWA43kBepbIv0bV8WJQ6cVXfj1c2A/view