[루비] JSON to TSV~ 블록 처리와 1문 처리~

개시하다


이 글에서는 파일 읽기와 쓰기에 편리한 루비 파일 클래스를 소개한다.

  • 사용File.open(), 블록당 행당 처리
  • File.read(), File,write() 1회 처리
  • #환경
    Ruby 2.7.2

    전제 조건

    JSONTSV는 예를 들어 전환할 절차를 설명했다.
    [{"name":"john","gender":"m","age":"18"},
     {"name":"paul","gender":"m","age":"20"},
     {"name":"alice","gender":"f","age":"15"},
     {"name":"dabid","gender":"m","age":"17"},
     {"name":"jasmin","gender":"f","age":"17"}]
    
    ↑ 이 파일을 ↓로 변환합니다.
    john	m	18
    paul	m	20
    alice	f	15
    dabid	m	17
    jasmin	f	17
    

    File.open () 의 블록 처리 사용하기


    절차.

  • JSON 파일 열기
  • 루비 처리 가능한 형태로 변경(JSON to Hash)
  • 텍스트 정형(TSV 변환)
  • 텍스트 파일 쓰기
  • require "json" # JSONライブラリの読み込み
    
    #json => Hash
    meibo_hash = [{}]
    File.open("meibo.json") do |meibo_json_file| # 1. meibo.jsonを開く
      meibo_hash = JSON.load(meibo_json_file) # 2. JSON形式の文字列からRubyオブジェクトへ変換
    end
    
    File.open("meibo.txt", "w") do |meibo_txt| # 3. 欲しいテキストファイル、meibo.txtを作成して開く
      meibo_hash.each do |meibo_hash_person|
        meibo_array = [meibo_hash_person["name"],meibo_hash_person["gender"],meibo_hash_person["age"]] #3. Hash => array
        meibo_txt.puts(meibo_array.join("\t")) # 4. 1行ずつタブ区切りで配列を結合し、書き込み
      end
    end
    

    File.read(),File.write () 를 이용한 1문장 처리


    절차.

  • JSON 파일을 읽고 Ruby 객체로 변환
  • 텍스트 정형
  • 텍스트 파일 쓰기
  • require "json"
    
    #json => Hash
    meibo_hash_in_array = JSON.load(File.read("meibo.json")) # JSONファイルを読み取り、Rubyオブジェクトへ変換 
    
    # hash => array [~"\t"~"\t"~"\t"~,..,~"\t"~"\t"~"\t"~]
    meibo_text_array = meibo_hash_in_array.map do |person|
                        [person["name"],person["gender"],person["age"]].join("\t") # テキストの整形
                       end
    
    File.write("meibo.txt", meibo_text_array.join("\n")) # meibo.txtへ整形済みテキストを書き込み
    
    
    코드는 블록 처리 때보다 더욱 뚜렷하다.
    그러나 File.read()File.write()에서는 한 줄 한 줄 처리할 수 없다.
    파일 크기를 모르는 상태에서 사용하지 마십시오.

    참고 자료


    Rubby2.70 참조 매뉴얼 라이브러리 포함 라이브러리 파일 클래스 일람
    Qita 상징적 기재법 일람표, 라벨
    이 기사를 쓸 때 참고하게 해 주세요.

    좋은 웹페이지 즐겨찾기