pythonのライブラリ「japanese_holiday 0.0.4」を使用して日本の祝日を取得する

pythonでGoogle Calendar APIを使用して日本の祝日を取得するために、APIキーを取得する」でAPIキーを取得したのはこのため。「japanese_holiday 0.0.4」というライブラリはGoogle Calendar APIを使って祝日を取得しているので。
そして遡ると、元々は「Pythonでの時系列データの扱い4 〜 「祝日の取得」および「祝日を考慮した営業日の取得」」。営業日を取得したかった・・・。だいぶ廻り道をしている。

さて、pythonで日本の祝日を取得するために、Google Calendar APIを使用するのが良さそう。
ただ、せっかくpython使っているのだから、ライブラリくらいあるだろうということでpipでインストールできるものを調べた所「japanese_holiday 0.0.4」に遭遇。
※)「japan_holiday 0.0.8」の方が良さそうだったけど、私の環境ではなぜかpipでインストールに失敗したので諦めた(ノД`)シクシク。pipのバージョンアップもしたし、エラーメッセージ通り試したが簡単に解決しなかったので一旦諦めた(ノД`)シクシク。完全に私の環境の問題。

試しに次のコードを実行して、前年の休日情報を取得する。

#coding:utf-8
import japanese_holiday
import datetime

now = datetime.date.today()
date_from = datetime.date(now.year-1, 1, 1)
date_to = datetime.date(now.year-1, 12, 31)

holidays = japanese_holiday.getholidays(
"GoogleのAPIキー",
japanese_holiday.HOLIDAY_TYPE_OFFICIAL_JA,
date_from.strftime('%Y-%m-%d'),
date_to.strftime('%Y-%m-%d')
)

for holiday in holidays:
    for key in holiday:
        print key ,holiday[key]

実行結果は次。

status confirmed
kind calendar#event
end {u'date': u'2015-01-02'}
created 2014-01-09T12:57:26.000Z
iCalUID 20150101_60o30d9l64o30c1g60o30dr4co@google.com
htmlLink https://www.google.com/calendar/event?eid=MjAxNTAxMD
sequence 0
updated 2014-01-09T12:57:26.000Z
visibility public
summary 元日
start {u'date': u'2015-01-01'}

・・・・・・・・・

とりあえず、下記が分かる。

・「summary」というキーに対応するのが「休日名」
・「start」というキーに対応するのが「休日の日付ディクショナリ」
※)日付を取得するには更にキー「date」を指定する
・「end」というキーに対応するのが「休日の翌日日付ディクショナリ」
※)日付を取得するには更にキー「date」を指定する

最後の、for文を書き換えて休日日付と休日種類を出力するようにしたソースコードが下記。

#coding:utf-8
import japanese_holiday
import datetime

now = datetime.date.today()
date_from = datetime.date(now.year-1, 1, 1)
date_to = datetime.date(now.year-1, 12, 31)

holidays = japanese_holiday.getholidays(
"GoogleのAPIキー",
japanese_holiday.HOLIDAY_TYPE_OFFICIAL_JA,
date_from.strftime('%Y-%m-%d'),
date_to.strftime('%Y-%m-%d')
)

for holiday in holidays:
    print holiday['start']['date'],holiday['summary']

結果は次。

2015-01-01 元日
2015-01-12 成人の日
2015-02-11 建国記念の日
2015-03-21 春分の日
2015-04-29 昭和の日
2015-05-03 憲法記念日
2015-05-04 みどりの日
2015-05-05 こどもの日
2015-05-06 憲法記念日 振替休日
2015-07-20 海の日
2015-09-21 敬老の日
2015-09-22 国民の休日
2015-09-23 秋分の日
2015-10-12 体育の日
2015-11-03 文化の日
2015-11-23 勤労感謝の日
2015-12-23 天皇誕生日

以上。
アメリカやイギリスの休日を取得したい場合は、Google API Calendarを使用して自作する。
ケース・バイ・ケースだけど、自作するのが学習コストはかかるけど応用が効くし面白いよね。