Challenge programming

Python

Pythonを使ってWeb APIで取得したJSONファイルの扱い方の説明

 さて、今回もopenWeatherMapのAPIを使って、現在の天気を取得してみましょう。
import requests
import json
from pprint import pprint

url = "http://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}&lang=ja&units=metric"
url = url.format(city="Tokyo",key="あなたが取得したAPIキー")

jsondata = requests.get(url).json()
pprint(jsondata)

解説

import requests インターネットにアクセスするためのrequestsをimportします。
import json JSONを扱えるようにする標準ライブラリのjsonをimportします。
from pprint import pprintきれいに整形して表示することができる標準ライブラリのpprintをimportします。
url = "http://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}&lang=ja&units=metric"海外サイトなので、日本語表示にするためlang=ja、気温の単位も摂氏にするためunits=metricを追記しました。http://を追記しAPI callを貼り付けます。変数urlとし代入します。
url = url.format(city="Tokyo",key="取得したAPIキー")format文を使い、置き換えます。
jsondata = requests.get(url).json()getした値に.json()と命令して取り出します。
pprint(jsondata)取得したデータを表示します。

きれいに整形して表示することができました。

指定した天気データーを取り出してみよう

import requests
import json
url = "http://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}&lang=ja&units=metric"
url = url.format(city="Tokyo,JP", key="あなたが取得したAPIキー")

jsondata = requests.get(url).json()
print("都市名 =", jsondata["name"])
print("気温 =", jsondata["main"]["temp"])
print("天気 =", jsondata["weather"][0]["main"])
print("天気詳細 =", jsondata["weather"][0]["description"])

解説

import requests インターネットにアクセスするためのrequestsをimportします。
import json JSONを扱えるようにする標準ライブラリのjsonをimportします。
url = "http://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}&lang=ja&units=metric"海外サイトなので、日本語表示にするためlang=ja、気温の単位も摂氏にするためunits=metricを追記しました。http://を追記しAPI callを貼り付けます。変数urlとし代入します。
url = url.format(city="Tokyo",key="取得したAPIキー")format文を使い、置き換えます。
jsondata = requests.get(url).json()getした値に.json()と命令して取り出します。
print("都市名 =", jsondata["name"]) nameを取り出します
print("気温 =", jsondata["main"]["temp"])mainの中のtemp(気温)を取り出します
print("天気 =", jsondata["weather"][0]["main"])weatherのインデックスの0番のmainを取り出します。
print("天気詳細 =", jsondata["weather"][0]["description"])weatherのインデックスの0番のdescriptionを取り出します。

指定したデーターが取り出せましたね。 しかし、データは刻一刻と更新されますので、上記プログラムで取得した時のデータとなっています。そのため 上記の整列され表示されてるデータ(気温)と差異が出てしまっています。ご了承ください。

もちろん海外の都市名でもデータを取り出せます。では、オーストラリアのシドニーの今の天気情報はどうでしょう?

import requests
import json

url = "http://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}&lang=ja&units=metric"
url = url.format(city="Sydney", key="あなたが取得したAPIキー")

jsondata = requests.get(url).json()
print("都市名 =", jsondata["name"])
print("気温 =", jsondata["main"]["temp"])
print("天気 =", jsondata["weather"][0]["main"])
print("天気詳細 =", jsondata["weather"][0]["description"])

こんな感じです。

郵便番号を指定して、天気を取得する。

*尚、ここではバージョン「Python 3.10.1」を使用しています。

この本を参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。



もっと深く学びたい人にはこちらもどうぞ。| For those who want to learn more deeply, this is also recommended.

キャリアアップに必要なスキルを取得しよう。| Get the skills you need to advance your career.

Pythonエンジニア育成推進協会公式認定スクール | Officially certified school of Python Engineer Development Promotion Association.

ぺージの先頭に戻る(Return to top of page)


©2020年9月 Challenge programming

プライバシーポリシー