pythonで駅すぱあとのAPIを試す

スポンサーリンク
tech系(python)
スポンサーリンク

はじめに

駅すぱあとのAPIがフリープランでも結構使える非常に良質なAPIだったので使ってみました。

ネットに記事があまりないのでもったいないように思えます。

色々と可能性はあると思います。

今回使用するのは無料で使えるフリープランです。

フリープランのAPIについての公式ページはこちら

無料でも結構な機能が使えます。本当に素晴らしいです。

まずはこちらのページでフリープランに申し込み、APIキーを手に入れましょう。

この記事でわかること

駅すはあとAPIの可能性

APIを使ってみる

駅情報を取得

駅情報を取得して見ます。

コードは以下のようになります。

import requests
import json

# 駅すぱあとのAPIエンドポイント
endpoint = "https://api.ekispert.jp/v1/json/station"

# APIキー
api_key = "XXXXXXXXX"

# リクエストパラメータ
params = {
    "key": api_key,
    "name": "新宿"
}

# APIリクエストを送信
response = requests.get(endpoint, params=params)

# レスポンスデータの取得
data = response.json()

# JSONを整形して出力
formatted_json = json.dumps(data, indent=4, ensure_ascii=False)  # indentを指定して整形
print(formatted_json)

実行結果は以下のようになります。

{
    "ResultSet": {
        "apiVersion": "1.27.0.0",
        "max": "6",
        "offset": "1",
        "engineVersion": "202309_02a",
        "Point": [
            {
                "Station": {
                    "code": "22741",
                    "Name": "新宿",
                    "Type": "train",
                    "Yomi": "しんじゅく"
                },
                "Prefecture": {
                    "code": "13",
                    "Name": "東京都"
                },
                "GeoPoint": {
                    "longi": "139.42.11.0",
                    "lati": "35.41.15.0",
                    "longi_d": "139.703056",
                    "lati_d": "35.6875",
                    "gcs": "tokyo"
                }
            },
            {
                "Station": {
                    "code": "29342",
                    "Name": "新宿(東京メトロ)",
                    "Type": "train",
                    "Yomi": "しんじゅく"
                },
                "Prefecture": {
                    "code": "13",
                    "Name": "東京都"
                },
                "GeoPoint": {
                    "longi": "139.42.15.0",
                    "lati": "35.41.20.69",
                    "longi_d": "139.704167",
                    "lati_d": "35.689083",
                    "gcs": "tokyo"
                }
            },
            {
                "Station": {
                    "code": "22768",
                    "Name": "西武新宿",
                    "Type": "train",
                    "Yomi": "せいぶしんじゅく"
                },
                "Prefecture": {
                    "code": "13",
                    "Name": "東京都"
                },
                "GeoPoint": {
                    "longi": "139.42.11.59",
                    "lati": "35.41.31.59",
                    "longi_d": "139.703222",
                    "lati_d": "35.69211",
                    "gcs": "tokyo"
                }
            },
            {
                "Station": {
                    "code": "22742",
                    "Name": "新宿御苑前",
                    "Type": "train",
                    "Yomi": "しんじゅくぎょえんまえ"
                },
                "Prefecture": {
                    "code": "13",
                    "Name": "東京都"
                },
                "GeoPoint": {
                    "longi": "139.42.50.19",
                    "lati": "35.41.7.29",
                    "longi_d": "139.713944",
                    "lati_d": "35.68536",
                    "gcs": "tokyo"
                }
            },
            {
                "Station": {
                    "code": "22743",
                    "Name": "新宿三丁目",
                    "Type": "train",
                    "Yomi": "しんじゅくさんちょうめ"
                },
                "Prefecture": {
                    "code": "13",
                    "Name": "東京都"
                },
                "GeoPoint": {
                    "longi": "139.42.29.69",
                    "lati": "35.41.15.19",
                    "longi_d": "139.70825",
                    "lati_d": "35.687555",
                    "gcs": "tokyo"
                }
            },
            {
                "Station": {
                    "code": "29330",
                    "Name": "新宿西口",
                    "Type": "train",
                    "Yomi": "しんじゅくにしぐち"
                },
                "Prefecture": {
                    "code": "13",
                    "Name": "東京都"
                },
                "GeoPoint": {
                    "longi": "139.42.8.89",
                    "lati": "35.41.22.39",
                    "longi_d": "139.702472",
                    "lati_d": "35.689555",
                    "gcs": "tokyo"
                }
            }
        ]
    }
}

新宿でAPIを実行すると新宿が付く駅が出力されますので、「新宿御苑前」なども含まれています。

個人的に結構大きなポイントとしては経度と緯度も取得できるところです。

ここが本当に素晴らしい。

あと、Typeも取得できています。例えば上記のpythonコードを「新宿」から「成田空港」に変更すると、以下のような出力になり、電車の駅である「成田空港」と空港である「成田空港」が取得できます。

つまり、空港の場所も取得でき、且つ、パラメータで駅と区別できることになります。

{
    "ResultSet": {
        "apiVersion": "1.27.0.0",
        "max": "2",
        "offset": "1",
        "engineVersion": "202309_02a",
        "Point": [
            {
                "Station": {
                    "code": "22392",
                    "Name": "成田空港(鉄道)",
                    "Type": "train",
                    "Yomi": "なりたくうこう"
                },
                "Prefecture": {
                    "code": "12",
                    "Name": "千葉県"
                },
                "GeoPoint": {
                    "longi": "140.23.23.0",
                    "lati": "35.45.46.0",
                    "longi_d": "140.389722",
                    "lati_d": "35.762778",
                    "gcs": "tokyo"
                }
            },
            {
                "Station": {
                    "code": "29110",
                    "Name": "成田空港(東京)",
                    "Type": "plane",
                    "Yomi": "なりたくうこう"
                },
                "Prefecture": {
                    "code": "12",
                    "Name": "千葉県"
                },
                "GeoPoint": {
                    "longi": "140.23.26.0",
                    "lati": "35.45.55.0",
                    "longi_d": "140.390556",
                    "lati_d": "35.765278",
                    "gcs": "tokyo"
                }
            }
        ]
    }
}

駅の付加情報を取得

次に駅の付加情報を取得してみます。

これも結構すごいです。

付加情報は駅名ではなく駅コードで取得するので今回は恵比寿駅(駅コード:22548)で試してみます。

コードは以下のようになります。パラメータのところより下は上記で載せたコードと同じなので割愛します。

import requests
import json

endpoint = "https://api.ekispert.jp/v1/json/station/info"

api_key = "XXXXXXXX"

# リクエストパラメータ
params = {
    "key": api_key,
    "code": 22548,
    "type": "operationLine"
}

typeのoperationLineは乗り入れ路線を示しています。(これ凄いですよね!)

実行結果は以下です。

{
    "ResultSet": {
        "apiVersion": "1.27.0.0",
        "engineVersion": "202309_02a",
        "Information": {
            "Corporation": [
                {
                    "code": "1",
                    "Name": "JR"
                },
                {
                    "code": "18",
                    "Name": "東京地下鉄"
                }
            ],
            "Type": "operationLine",
            "Line": [
                {
                    "corporationIndex": "1",
                    "code": "105",
                    "Name": "JR湘南新宿ライン",
                    "Yomi": "じぇいあーるしょうなんしんじゅくらいん",
                    "Color": "255080000"
                },
                {
                    "corporationIndex": "1",
                    "code": "106",
                    "Name": "JR埼京線",
                    "Yomi": "じぇいあーるさいきょうせん",
                    "Color": "000178139"
                },
                {
                    "corporationIndex": "1",
                    "code": "113",
                    "Name": "JR山手線内回り",
                    "Yomi": "じぇいあーるやまのてせんうちまわり",
                    "Color": "045232013"
                },
                {
                    "corporationIndex": "1",
                    "code": "114",
                    "Name": "JR山手線外回り",
                    "Yomi": "じぇいあーるやまのてせんそとまわり",
                    "Color": "045232013"
                },
                {
                    "corporationIndex": "2",
                    "code": "330",
                    "Name": "東京メトロ日比谷線",
                    "Yomi": "とうきょうめとろひびやせん",
                    "Color": "165156149"
                }
            ]
        }
    }
}

見てください!乗り入れ路線が取得できてます!

しかも色も取得できる!

他にも以下のように変えられるのでぜひ試してみてください。

「乗り入れ路線(平均路線)」(上記コードのoperationLineの部分をrailに変更)

「最寄路線(平均路線)」(上記コードのoperationLineの部分をnearrailに変更)

「福祉施設」(上記コードのoperationLineの部分をwelfareに変更)

「出口案内標識」(上記コードのoperationLineの部分をexitに変更)

個人的には「福祉施設」と「出口案内標識」が情報の細かさに本当に驚きました。

まとめ

今回は駅すぱあとのAPIをフリープランで試してみました。

無料とは思えないほどの情報量の宝庫でかなり驚きました。

これは使わないと損だなーと思っています。

お金に余裕が出てきたら有料プランも使ってみたいと思っています。(個人だとむずかしいのかな)

他にも路線情報や会社情報も取得できますが、この記事で書いた情報よりは細かくないので割愛しました。(あと使う用途がまだ見えてないです。)

今回はここまで。ではまた。👋👋👋


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