5.json形式でファイルに書き出す - nsaku/xrepo-api-tutorial GitHub Wiki

やること

  • json形式でデータをファイルに書き出す方法を確認します。

食レポAPIで取得したデータをそのまま保存しておくほか、json形式のデータの「形」を確認するのに便利なので、おさえておきましょう。

APIでデータ取得

test4.pyを作り、コードを書きましょう。

import requests
import json                              # ---- 追加

url = "http://metabolites.in/foods/api/dl-info-peaks/01026"

file_info = requests.get( url ).json()

out_file = "out4.json"             # ---- 以下を編集

fh_out = open( out_file, "w", encoding="utf-8" )         # 1)
json.dump( file_info, fh_out, indent=4, ensure_ascii=False )    # 2)
fh_out.close()                                                  # 3)

出来上がった"out4.json"ファイルをテキストエディタで開いてみると、以下のように なっていると思います。

{
    "name": "01026_peaks.zip",
    "size": 2.530384
}

json形式では、文字列(リテラル)はダブルクォーテーション「"」でくくり、シングルクオーテーション「'」ではくくらないという決まりなので、そのように正しく記載されていることが分かります。

また、「項目名(キー)」と「値」が一行ごとに書き出されるため、jsonファイルの形が確認しやすいです。

プログラムの解説

  • 1)では、前項と同様にファイルを開き、ファイルハンドラ(fh_out)で扱えるようにしています。
  • 2)では、json.dump()関数を使って、file_infoの内容をファイルハンドラに書き出しています。この関数を使うために、jsonというモジュールをプログラムの2行目でインポートしています。indentは、整形するときの字下げの文字数を指定します。ensure_ascii=Falseは、日本語の含まれるデータの場合、文字コードを可読性の低いUnicodeに「しない」設定です。
    1. ファイルハンドラを閉じて完了です。