python
ubike
topic
要取得UBike資訊,需要透過「桃園開放資料」網站來取得,其網址如下:
https://data.tycg.gov.tw/opendata/datalist/datasetMeta?oid=5ca2bfc7-9ace-4719-88ae-4034b9a5a55c
進入API(應用程式介面:Application Program Interface)網頁後,會看到其提供三種格式:
備註:
此範例會選用CSV格式。
索引 | 欄位名稱 | 說明 |
---|---|---|
0 | sareaen | 行政區英文名 |
1 | sarea | 行政區中文名 |
2 | lng | 經度 |
3 | sna | 中文站名 |
4 | snaen | 英文站名 |
5 | bemp | 空位數量 |
6 | ar | 中文地址 |
7 | act | 全站禁用狀態(0:禁用、1:啟用) |
8 | sno | 站編號 |
9 | aren | 英文地址 |
10 | tot | 場站總停車格 |
11 | _id | 資料編號 |
12 | sbi | 場站目前車輛數量 |
13 | mday | 微笑單車各場站來源資料更新時間 |
14 | lat | 緯度 |
資料來源:
模組名稱 | 說明 |
---|---|
requests | 存取網路上http協定資料 |
csv | 解析CSV格式檔案並轉成list格式(兩層) |
使用import
指令引入需要的requesta
和csv
模組
設定要取得資料的目標網址
連線該網址並取得資料,結果會存於response
變數中
補充:
不管成功或失敗,其資料和狀態都會存在response中
判斷取得該網址資料是否結果成功還是失敗。
取得回傳的資料並將每一行切該存成一個list
補充:
因為這裡取得資料為CSV格式,所以需要先一行一行切開
取得使用者輸入
上面切開為list
的資料,交給csv模組,來將每一筆資料再使用逗點來切開成一個新的list
,回傳的資料需再轉成list
型態。
補充:
此時的list
會是一個兩層的list
透過迴圈一筆一筆資料取出來
使用in
語法判斷使用者個輸入文字有沒有在該筆資料的第四個欄位中(也就是站名),有的話就以print
函式來顯示該站台的完整名稱、地址、可借、可還數量。
補充:
最下面一個完全沒有輸出文字的print()
只是單純為了多換一行
嘗試在查詢結果中加上顯示「該Ubike站腳踏車總量的資訊」
例如: