Python
XML
天気

PythonでXMLから降水確率を取得する

親記事: Raspberry Pi Zero Wで傘リマインダーを作る

タイトルの通りです。Python初心者、XMLのこともまだちゃんと理解していない。追々勉強していきます。
使っているPythonのバージョンは2.7.9です。

お世話になったリンク

http://www.drk7.jp/weather/
気象庁が公開している天気予報情報をXML形式で配信しているようです。有難く利用させていただきます。

https://docs.python.jp/2.7/library/xml.etree.elementtree.html
XMLのパースのしかた。

出来上がったコード

横浜東部の降水確率を表示します。自分が知りたいのは主に夕方および夜の降水確率なので、

  • 12時 - 18時
  • 18時 - 24時

の二つに分けて取得します。もっと効率的なやり方がありそうな気配をひしひしと感じます。ご教示をば。

2017/08/13 追記: コメント欄に@shiracamusさんから教えていただいた、内包表記を使ったもっときれいなコードがあります。

code
# coding: utf_8

import datetime
today = datetime.datetime.today().strftime("%Y/%m/%d")

import requests
url = 'http://www.drk7.jp/weather/xml/14.xml'
response = requests.get(url)

import xml.etree.ElementTree as ET
root = ET.fromstring(response.content)

# Get rainfallchance of North Yokohama
# Time: 12h - 18h and 18h - 24h

for area in root.iter('area'):
    if area.get('id').encode('utf_8') == '東部':
        for info in area.findall('info'):
            if info.get('date') == today:
                rainfallchance = info.find('rainfallchance')
                for period in rainfallchance.findall('period'):
                    hour = period.get('hour')
                    if hour == '12-18' or hour == '18-24':
                        print hour + 'h ' + period.text + '%'
result
12-18h 10%
18-24h 20%