政府統計データ取得 API e-Stat の簡単な使用方法 その 4

今回はいよいよ統計データ取得です。

前回までのコードで次のような出力ができるようになりました。
ScreenShot03

前回までの実行結果から、
政府統計コードが 00200524 である人口推計の
2012 年に調査したデータで、
“年齢(各歳),男女別人口及び人口性比-総人口,日本人人口” という統計表に対する
統計表 ID が “0003080162” で、
それに対する絞込条件は、

cat01:男女別・性比較
cat02:人口
cat03:年齢各歳
area:全国
time:時間軸(年月日現在)

であることがわかりました。
今回はこれらの情報を基に、
条件を絞り込んで統計データを取得したいと思います。

統計データ取得のリクエスト URL は次のようになります。

このリクエスト URL に対して、
さらに絞込条件に関するパラメータを追加することで、
取得したい統計データのみを取得できます。

さて、
ここで取得したいデータを、
各歳それぞれの男性の人口および女性の人口であるとします。
また、ここでの人口は日本人人口とします。

男性の人口と女性の人口をそれぞれ取得したいため、
絞込条件 cat01 に対する条件は “男” または “女” になります。
それぞれの code は “002” と “003” となります。
このように絞込条件が複数ある場合はカンマ区切りで指定します。
パラメータは次のようになります。

次に、日本人人口の値を取得したいため、
絞込条件 cat02 に対する条件は “日本人人口” となります。
code は “002” となります。
パラメータは次のようになります。

最後に、
各歳それぞれの人口を知りたいため、
絞込条件 cat03 に対する条件は “0歳”、”1歳”、・・・、”99歳”、”100歳以上” となります。
絞込条件が複数であるため、
cat01 と同様にすると次のようになります。

項目数が 101 個もあるため、入力が非常に大変ですね。
さらに、仕様書を確認すると、
ひとつの絞込条件に対する項目数は 100 個までだそうです。
したがって、このままでは上限を超えているため、
統計データを取得することができません。
このような場合は、パラメータの指定方法として、
“cdCat03″ ではなく、”cdCat03From” と “cdCat03To” を使用します。
絞込条件の開始条件として、”cdCat03From” を使用し、
絞込条件の終了条件として、”cdCat03To” を使用します。
今回の場合は “0歳” から “100歳以上” までが絞込条件となるため、
cdCat03 パラメータはつぎのようになります。

以上、今回の例では、
統計データ取得のためのリクエスト URL は次のようになります。

これまでの絞込条件によるパラメータをすべて “&” でつなげて結合した形となります。

それでは C# コードから統計データ取得を実行してみましょう。
今回のコードは次のようになります。

前回と同様、Json クラスや GetValue() 拡張メソッド等は省略しています。

統計データ取得のリクエストに対するレスポンスは、
GET_STATS_DATA をルートタグとして、
GET_STATS_DATA/STATISTICAL_DATA/DATA_INF/VALUE に具体的な値が格納されます。
本当は、指定した絞込条件によって本当にデータが取得できたかどうかなどを調べ、
その上で VALUE タグにアクセスするべきですが、
今回は前回までのコードから明らかにデータがあるとわかっているため、
その辺の異常検出コードのほとんどを省略しています。

実行結果は次のようになります。
ScreenShot04

絞り込んだ条件にヒットしたデータだけを取得していることが確認できると思います。
試しに cat03 に対する条件をひとつだけにしてみたり、
いろいろいじってみるともっと理解できると思います。
また、VALUE タグには上記コードの他にも、unit 属性があったり、
いろいろここでは省略されているものがあるので、
仕様書とにらめっこしながらいじってみて下さい。

実際のアプリケーションに実装するには、
コードとそれに対する表題を結び付けたり、
そもそも政府統計コードを用意しておかなきゃいけなかったり、
いろいろ表示のためのデータ変換やら前準備がたくさんあります。

以上、政府統計データ取得 API の簡単な使用方法でした。
果たして本当に簡単だったのだろうか…。