2021/09/28
120

【Python學堂】新手入門第八篇-Python應用篇:下載youbike即時資訊

【Python學堂】新手入門第八篇-Python應用篇:下載youbike即時資訊
圖 / 文©徐國堂 老師
各位同學們,在先前Python入門文章中,學會了 邏輯運算子int、float、str、bool四種基本資料類型判斷的三種語法:單向選擇語法、雙向選擇語法、多向選擇語法、以及python迴圈的運用四種資料結構的使用如何自訂函式,藉此篇文章應用所學到的技巧,下載Youbike即時資訊。

Python網路應用:下載YouBike即時資訊

透過政府開放平台,取得YouBike臺北市公共自行車即時資訊。
檔案名稱 介接網址 主要欄位說明
YouBike臺北市公共自行車即時資訊(JSON檔) 網址 sno(站點代號)、sna(場站中文名稱)、tot(場站總停車格)、sbi(場站目前車輛數量)、sarea(場站區域)、mday(資料更新時間)、lat(緯度)、lng(經度)、ar(地點)、sareaen(場站區域英文)、snaen(場站名稱英文)、aren(地址英文)、bemp(空位數量)、act(全站禁用狀態)

Step 1:安裝requests擴充套件

  • 開啟vscode的Terminal → new Terminal功能
$ pip install requests
Python網路應用:下載Youbike即時資訊-安裝requests擴充套件

Step 2:檢視json資料結構

  1. 使用chrome,開啟介接網址
  2. Python網路應用:下載Youbike即時資訊-檢視json資料結構-1
  3. 複製json文字
  4. 使用網站工具Online JSON Viewer,並貼上json文字至文字區
  5. Python網路應用:下載Youbike即時資訊-檢視json資料結構-2
  6. 點選Viewer, 檢視json資料結構
  • 所有資料位於retVal節點
Python網路應用:下載Youbike即時資訊-所有資料位於retVal節點

Step 3:下載Youbike資料

#下載所有資訊
import requests
url = 'https://tcgbusfs.blob.core.windows.net/blobyoubike/YouBikeTP.json'
response = requests.get(url)
if response.status_code == 200:
    json=response.json()
    print(json)
else:
    print("下載失敗")
Python網路應用:下載Youbike即時資訊-下載資料

Step 4:取出所有站點資訊

allData = list(json["retVal"].values())
allData
Python網路應用:下載Youbike即時資訊-取出所有站點資訊

Step 5:列印表格化資訊

print("{:<30s}\t\t{:<3s}\t{:>5s}{:>5s}{:>5s}".format("站名","區域","可借數量","可還數量","總數量"))
for site in allData:
    siteName = site["sna"]
    area = site["sarea"]
    sbi = site["sbi"]
    bemp = site["bemp"]
    total = site["tot"]
    print("{:<30s}\t{:<3s}\t{:>5s}\t{:>5s}\t{:>5s}".format(siteName,area,sbi,bemp,total))
Python網路應用:下載Youbike即時資訊-列印表格化資訊

Step 6:使用pandas

  1. 安裝pandas
  2. $ pip install pandas
    
  3. 建立表格資料
  4. import pandas as pd
    dataFrame = pd.DataFrame(allData,columns=['sna','sarea','sbi','bemp','tot'])
    dataFrame.columns = ["站名","區域","可借數量","可還數量","總數量"]
    dataFrame.set_index('站名',inplace=True)
    dataFrame
    
Python網路應用:下載Youbike即時資訊-使用pandas建立表格資料
近期文章你可能有興趣的文章
×
提醒鈴鐺
你也想趁防疫期間進修第二專長嗎?
現在學習還可領取萬元學習補助金!
現在學還有萬元補助金~