複数ファイル形式(CSV、XML、JSON)


1. CSV

  • Comma Seperated Valueの略で、カンマで区切られたファイルです.
  • CSVファイルとPandas

  • PandasのDataFrameはto csvメソッドをサポートします.この方法では、簡単にcsvファイルとして保存できます.
  • # Data -> CSV file
    import pandas as pd
    
    df=pd.DataFrame(rows, columns=fields)
    df.to_csv('pandas.csv',index=False)
    # CSV file -> DataFrame
    df = pd.read_csv('pandas.csv')
    df.head()

    2. XML

  • 拡張可能なタグ言語の略で、マルチターゲットタグ言語です.
  • APIは、データの格納および要求にXMLまたはJSON形式を使用する.

  • 寸法言語とは、親タグ-サブタグの階層であるタグ(tag)からなる言語を指す.
  • XMLは要素からなる.
  • 要素は<열린 태그> 내용 </닫힌 태그>を基本構造とし、属性値を有することができる.
  • XMLファイルの作成


    ElementTreeを
  • パイプライン標準ライブラリとして使用
  • Element():生成フラグ
  • SubElement():生成子ラベル
  • tag:ラベル名
  • text:テキストコンテンツ
  • を生成する.
  • attrib:属性の作成
  • XMLグループ

  • 解析は、ある文字列を有意義なタグに分解し、構文の意味と構造を反映する解析ツリー(parse tree)を生成するプロセスである.
  • BeautifulSoupによるグループ化

    # 파일의 title 태그만 추출하기
    
    from bs4 import BeautifulSoup
    import os
    
    path = os.getenv("HOME") + "/aiffel/ftext/data/books.xml"  
    with open(path, "r", encoding='utf8') as f:
        booksxml = f.read() 
        #- 파일을 문자열로 읽기
     
    soup = BeautifulSoup(booksxml,'lxml') 
    #- BeautifulSoup 객체 생성 : lxml parser를 이용해 데이터 분석
    
    for title in soup.find_all('title'): 
    #-  태그를 찾는 find_all 함수 이용
    	
        print(title.get_text())
        print(title)

    3. JSON

  • JavaScript Object Notationの略で、Web言語JavaScriptのデータオブジェクト表現です.
  • # 예시
    person = {
          "first name" : "Yuna",
          "last name" : "Jung",
          "age" : 33,
          "nationality" : "South Korea",
          "education" : [{"degree":"B.S degree", "university":"Daehan university", 
          "major": "mechanical engineering", 
          "graduated year":2010}]
           } 
  • の利点:CSVファイルよりもデータ表現が柔軟で、XMLファイルよりもファイルの読み書きが容易である.
  • の利点:JavaScriptで作成されたプログラムで使いやすい.
  • JSONパーティション


    保存
  • JSONファイル
  • import json
    
    person = {
          "first name" : "Yuna",
          "last name" : "Jung",
          "age" : 33,
          "nationality" : "South Korea",
          "education" : [{"degree":"B.S degree", "university":"Daehan university", "major": "mechanical engineering", "graduated year":2010}]
           } 
    
    with open("person.json", "w") as f:
        json.dump(person , f)
  • JSONファイル
  • を読み込む
    import json
    
    with open("person.json", "r", encoding="utf-8") as f:
        contents = json.load(f)
        print(contents["first name"])
        print(contents["nationality"])
        
    # 출력 결과
    Yuna
    South Korea