0
0

More than 3 years have passed since last update.

【Ruby】タブ区切りテキストファイル(tsv)をjsonに変換する

Last updated at Posted at 2019-11-08

概要

アウトプット用に、学習した内容を紹介していきます。
昨日はRubyでtsvをcsvに変換しましたが、
本日はtsvをjsonに変換するお話です。

環境

Mac OS Mojave 10.14.6
Ruby 2.5.3
エディタ VSCode

tsvをjsonに変換

以下のタブ区切りテキストをjsonファイルに変換します。

meibo.txt
john    m   18
paul    m   20
alice   f   15
dabid   m   17
jasmin  f   17

ファイルの変換に用いたコードが以下。

tsvtojson.rb
require 'json'

hash_array = []

# dump用の配列hash_arrayにデータを格納
File.foreach('meibo.txt') do |line|
  person = line.chomp.split("\t")
  hash = {
    'name' => person[0],
    'gender' => person[1],
    'age' => person[2]
  }
  hash_array << hash
end

# jsonへ出力
File.open('meibo.json', 'w') do |file|
  JSON.dump(hash_array, file)
end

ファイルに対して一行ずつの処理を行うにはforeachを使うのが良いです(コメントで教えていただきました)。このループの中で一行ずつ内容をhash_arrayに格納していきます。

全て格納し終えたら、最後にJSON.dump(hash_array, file)でjsonファイルに出力します。

0
0
0

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
0
0