<第11回Web会議日程>
2024年09月18日(水)19:00から
天気予報Appを実行する「WeatherForecast.py」に
以下の情報を追加してください。
■風の強さ
■波の高さ
■最高気温、最低気温
■6時間毎の降水確率
<修正前>
<修正後>
※一部抜粋
天気予報APIからのレスポンスを辞書型に変換した値が変数「response_dict」に格納されている。
"風の強さ"取得処理を追加して変数に代入
"風の強さ"は
キー「forecasts」に対応する値の配列の
キー「detail」に対応する辞書の
キー「wind」に対応する値 から取得できる
"波の高さ"取得処理を追加して変数に代入
"波の高さ"は
キー「forecasts」に対応する値の配列の
キー「detail」に対応する辞書の
キー「wave」に対応する値 から取得できる
"最高気温"、"最低気温"取得処理を追加して変数に代入
"最高気温"は
キー「forecasts」に対応する値の配列の
キー「temperature」に対応する辞書の
キー「max」に対応する辞書の
キー「celsius」に対応する値 から取得できる
"最低気温"は
上記のキー「max」をキー「min」に変更すれば取得できる
6時間毎の降水確率をそれぞれに取得処理を追加して変数に代入
"0 時から 6 時までの降水確率"は
キー「forecasts」に対応する値の配列の
キー「chanceOfRain」に対応する辞書の
キー「T00_06」に対応する値 から取得できる
6時間毎の降水確率は、
キー「T00_06」をそれぞれ対応するキーに変更すれば取得できる
GUIに表示するメッセージを変数「msg」に、
上記で取得した情報を追記する
<天気予報API(livedoor 天気互換)とは>
無料で天気予報を取得できるWebAPIを用意してくれているサイト
https://weather.tsukumijima.net/
以下のURLに地域別に定義されたCITYパラメータを追加してGETリスエストを送ると、JSON形式で天気予報の情報がレスポンスとして返される
https://weather.tsukumijima.net/api/forecast/city/○○
▼CITYパラメータの定義
https://weather.tsukumijima.net/primary_area.xml
<tkinterとは>
GUIPython からGUIを構築・操作するためのライブラリ、標準ライブラリの1つ
メインウィンドウにラベルやボタンなどのパーツ(ウィジェット)を配置して構築する
<メインウィンドウ>
GUIのベースとなるウィンドウそのもの
「Tk」クラスをインスタンス化することで生成できる
スクリプトの最後でループさせることで、スクリプトを終了させず、GUI操作の待機をさせることができる
<ラベル(Label)>
Tkinterに備わる文字を表示させるためのウィジェット
「Labal」クラスをインスタンス化して生成できる
オプションを設定することで、フォント・サイズ・太さなどを変更可能
<ボタン(Button)>
Tkinterに備わるボタンを生成するためためのウィジェット
「Button」クラスをインスタンス化して生成できる
オプションでボタンクリック時の動作を指定可能
▼天気予報Appのウィジェット配置イメージ
<requestsとは>
HTTP通信用のPythonのライブラリ
GET、POST、PUTなどのメソッドが用意されている
今回は、天気予報APIにGETリクエストを送るために使用
外部モジュールのため、利用するにはインストールの必要がある
<GETメソッド>
requests.get(リクエスト送信先URL,リクエストパラメータ)
URLに対してGETリクエストを送ることができる
リスエストの結果が、Responseオブジェクトとして返される