玩抓取資料可以很技術,也可以很生活啊!
現今愈來愈多的政府及機關公開資料可供民眾及系統設計應用,很多都是與民生相關的實用資訊!而且相關資料內容也益加完善,對於有設計及應用需求的人們真是個福音啊!
使用上也相當簡便,這次就以「新北市公共自行車租賃系統(YouBike)」的公開資料為操作範例,來練習玩玩如何簡便的獲取ubike的資時資訊並加以操作。
有關新北市的相關公開資料可以到以下位置查閱!
這次的操作練習主要目標是了解如何擷取網路上的公開資料回來加以整理、篩選出自己想要的資訊,並未多加著墨在其他的應用或呈現方式。
好囉~~一樣直接上程式碼吧.......
import requests
# 設定新北市UBike公開資料連結位置(取用json格式資料)
# 設定擷取資料筆數為700筆(目前新北市共有654個站點),若未設定size則每次預設只截取前30筆站點資料
url = 'https://data.ntpc.gov.tw/api/datasets/71Cxxxxx-A2DF-xxxxx-BEF1-xxxxx5E8A/json?size=700'
r = requests.get(url)
data = r.json()
def transform_format(mday): # 寫個轉換日期顯示格式小函式
Y, M, D, h, m, s = mday[:4], mday[4:6], mday[6:8], mday[8:10], mday[10:12], mday[12:14]
return Y + '/' + M + '/' + D + ' ' + h + ':' + m + ':' + s
print('擷取的資料筆數:',len(data))
ui = 0
for u in range(len(data)): # 逐筆讀取json資料
if data[u]['sarea'] == '土城區': # 判斷是否為「土城區」,屬於土城區的資料才呈現
ui += 1
data[u]['mday'] = transform_format(data[u]['mday']) # 轉化「資料更新時間」顯示格式
print(data[u])
print("「土城區」共有:",ui,"筆資料!")
程式執行結果截圖如下供參: