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で通知とかしたい