【Python】JSON形式のデータにアクセスする

  • URLをコピーしました!

こんにちは、むらさんです。
今回はJSONファイルの内部のデータにアクセスする方法を書きたいと思います。

目次

用意したJSONファイル

今回、使用するJSONファイルは以前、天気予報APIからデータを取得するプログラムで実際に生成したJSONファイルを使用します。

この記事に記載したコードを実装するとJOSNファイルが生成されます。

JSONデータにアクセスするソースコード

今回はWebAPIで取得したデータの中から、3日分の天気、風の予報だけを取り出して表示するプログラムを作成してみました。

import json

#ファイルを開く
json_open = open('result.json', 'r', encoding="utf_8_sig")

#JSON形式で読み込み
jload = json.load(json_open, strict=False)

#キーを指定して要素を取得
wt_info = jload["forecasts"]

#要素数分ループして出力
for i in wt_info:
    print("日にち:" + i["dateLabel"])
    print("天気:" + i.get("telop", "NotFound")) #Getメソッドで取得
    print("風:" + i["detail"]["wind"]) #detailの下の階層のデータ
    print("------------------------------")

4行目:
BOMを含むので”utf_8_sig”を指定します。

7行目:
JOSNファイルのデータが制御文字を含むので”strict”をfalseに指定します。

10行目:
“forecasts”のキーに対応する要素をすべて取得します。

14行目:
キーを指定して取得したデータを出力。

15行目:
getメソッドを使用して取得したデータを出力。2つ目の引数は取得できなかった場合に返す値を設定できます。

16行目:
入れ子になっている要素のキーを指定して出力。

以上となります。またJOSNファイル読み込み時に発生したエラーについては、過去の記事でまとめています。

日にち:今日
天気:晴のち曇
風:北西の風 後 西の風
------------------------------
日にち:明日
天気:曇時々晴
風:北の風 後 北西の風 海上 では 後 北西の風 やや強く
------------------------------
日にち:明後日
天気:晴時々曇
風:北西の風
------------------------------

まとめ

いかがだったでしょうか?
今回のやり方で、入れ子になっている要素にもアクセスすることができました。別のアクセス方法が必要になったときは、また記事にしたいと思います。

それでは、また次の記事でお会いしましょう。

おすすめ記事

よかったらシェアしてね!
  • URLをコピーしました!
目次