Skip to main content

用Python來抓取政府公開資料(JSON) -3 :台中 iBike

台中iBike公開資料

1.先到台中市政府資料開放平台(https://opendata.taichung.gov.tw

image-1620792598996.png

捲到下方找到iBike的即時車位資料:

image-1620792591823.png

目前iBike只提供JSON格式資料可下載:

image-1620792658332.png

下方提供資料的欄位說明:

image-1620792682503.png

點擊右方的「探索」,在【下載】的上方按下滑鼠右鍵選擇【複製連結網址】,就會取得 JSON的下載網址:

image.png

2022/12更新﹔

推測可能是線上的JSON檢視器耗費太多伺服器的資源,因此已經被取消,建議使用另一個線上JSON檢視器:

https://jsoneditoronline.org/

image.png

按下【Copy】下方的【>】,就能在右側看到解析出來的資料了。

image.png


Python程式撰寫

 

因為台中市iBike的資料格式非標準格式,寫法會有所不同,程式需要略為修改。

import  json, ssl, urllib.request

url = 'JSON下載網址'
context = ssl._create_unverified_context()

with urllib.request.urlopen(url, context=context) as jsondata:
    #將JSON進行UTF-8的BOM解碼,並把解碼後的資料載入JSON陣列中
     data = json.loads(jsondata.read().decode('utf-8-sig')) 

for key,value in data["retVal"].items():
    sna = value["sna"]    #站名
    sbi = value["sbi"]    #車輛數
    bemp = value["bemp"]  #空位數
    print(sna , "車輛數=",sbi, " 空位數=",bemp)

執行結果:

image-1620792902751.png