7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Python】JR西日本の指定路線の1分以上遅延のある電車を調べる

Last updated at Posted at 2019-07-01

JR西日本の指定路線で1分でも遅延している電車を調べてみる。

JSONのありかは「https://www.train-guide.westjr.co.jp/api/v3/」に
https://www.train-guide.westjr.co.jp/area_kinki.html
から各路線のファイル名+.jsonで
_st.jsonから駅の情報が取得できます。

神戸線の場合、

.py
import json
import urllib.request

try:
    url = 'https://www.train-guide.westjr.co.jp/api/v3/kobesanyo.json'
    url_st = url.replace('.json','_st.json')
    res = urllib.request.urlopen(url)
    res_st = urllib.request.urlopen(url_st)
    data = json.loads(res.read().decode('utf-8'))
    data_st = json.loads(res_st.read().decode('utf-8'))

    dictst = {}

    for station in data_st['stations']:
        dictst[station['info']['code']] = station['info']['name']

    for item in data['trains']:
        if item['delayMinutes'] > 0:
            stn = item['pos'].split('_')
            try:
                position = dictst[stn[0]] + '辺り'
            except KeyError:
                position = "どこかよくわかんない"
            print(item['displayType'], item['dest']['text'],'行き:',item['delayMinutes'],'分遅れ',position,'辺り')

except urllib.error.HTTPError as err:
    print('HTTPError: ', err)
except json.JSONDecodeError as err:
    print('JSONDecodeError: ', err)

出力結果

普通 高槻 行き: 2 分遅れ 尼崎辺り
普通 四条畷 行き: 2 分遅れ 神戸辺り
新快速 姫路 行き: 1 分遅れ 大久保辺り
普通 網干 行き: 6 分遅れ 大久保辺り

こんな感じです

後々したいこと
列車位置情報アプリが10分以上の遅れしか通知してくれないので、cronとかで定期的に実行とかでslackに送りつけるとかLINEで通知とかしたい

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?