OpenWeatherMapのデータをPythonで取得するAPI入門

スポンサーリンク

OpenWeatherMapでAPI入門

今回はAPIを提供しているWeather API – OpenWeatherMapというサイトからお天気を取得するプログラムでAPI入門したいと思います。ただ、はじめるにあたっての下準備と必要となる知識が若干多いです。

スポンサーリンク

OpenWeatherMapのAPI入門で必要となる知識

  • pythonのモジュール(requests, sys)
  • JSONデータの構造
  • openweathermapのAPIを使うには会員登録が必要

プログラミング言語はpythonを使用します。

プログラミングをはじめたばかりのころはJSONという聞きなれない単語がでてきますが、JSON(JavaScript Object Notation)は、データを構造化して表現するための軽量なデータフォーマットです。主にWebアプリケーションやAPIでデータのやり取りに使われます。以下は、JSONデータの基本的な構造を示す例です↓

{
  "name": "John Doe",
  "age": 30,
  "is_student": false,
  "hobbies": ["reading", "playing guitar", "cooking"]
}

ようするにどういうことかというとAPIにリクエストを送って返ってくるデータ(レスポンス)が上記のようなデータ構造になっているということです。JSONとは上記のような構造だと理解してください。ただ実際のJSONデータ量や階層はもっと多いので注意してください。

OpenWeatherMapから天気情報を取得するにはAPIを使用する

まえがきとしてAPIを扱うときは、必ずAPIを提供しているサイトの「ドキュメント」を見ることをおすすめします。

APIのリクエストURL

#これはプログラムの一部ですので動きません。
APPID='ここにAPIのキーが入ります'
assert APPID != '', 'APPIDを定義してください。'

# OpenWeatherMap.orgのAPIからJSONデータをダウンロードする
url ='http://api.openweathermap.org/data/2.5/forecast?q={}&appid={}'.format(location, APPID)

2行目と6行目を見てください。2行目でAPIキーを変数に代入して、6行目の最後でAPIキーをurlに追加しています。.format()関数の役割は、引数の部分が { ここにはいります。}

わかりにくいかもしれませんが、APPIDとlocationが合体されたものがAPIのリクエストURLになります。つまり「APIを使う」ということはAPIのリクエストURLにアクセスしてレスポンスを得るということです。

実際にOpenWeatherMapAPIで天気情報を取得する

#JSON形式データpprintで表示
import json, requests, pprint
APPID = ''#APIキーの定義
url ='http://api.openweathermap.org/data/2.5/forecast?q={}&appid={}'.format('Japan, JP', APPID)
#api.openweathermap.org/data/2.5/forecast?q= {都市名}、{国コード}5日バージョン
response = requests.get(url)
response.raise_for_status()

weather_data = json.loads(response.text)
print(type(weather_data))
pprint.pprint(weather_data)

requestsモジュールを使ってAPIのリクエストURLにアクセスしてレスポンスを取得します。

json.loads()はPythonの標準ライブラリであるjsonモジュールに含まれるメソッドで、JSON形式の文字列をPythonのデータ構造に変換するために使用されます。

これでOpenWeatherMapのAPIを使って天気情報を取得できましたので終わりにします。

コメント

タイトルとURLをコピーしました