使用Python進行YouBike2.0站點資料收集儲存到Mysql與資料分析

2023/09/07更新

使用網址「https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json」,由臺北市資料大平台的YouBike臺北市公共自行車即時資訊(此資料說明網址:https://data.taipei/dataset/detail?id=c6bc8aed-557d-41d5-bfb1-8da24f78f2fb)所提供的網址,以json格式回傳最近一分鐘的台北市YouBike站點資訊,以下為回傳結果範例。

[{'sno': '500101001', 'sna': 'YouBike2.0_捷運科技大樓站', 'tot': 28, 'sbi': 1, 'sarea': '大安區', 'mday': '2023-09-07 13:15:05', 'lat': 25.02605, 'lng': 121.5436, 'ar': '復興南路二段235號前', 'sareaen': 'Daan Dist.', 'snaen': 'YouBike2.0_MRT Technology Bldg. Sta.', 'aren': 'No.235, Sec. 2, Fuxing S. Rd.', 'bemp': 27, 'act': '1', 'srcUpdateTime': '2023-09-07 13:15:42', 'updateTime': '2023-09-07 13:15:52', 'infoTime': '2023-09-07 13:15:05', 'infoDate': '2023-09-07'}, {'sno': '500101002', 'sna': 'YouBike2.0_復興南路二段273號前', 'tot': 21, 'sbi': 1, 'sarea': '大安區', 'mday': '2023-09-07 13:15:05', 'lat': 25.02565, 'lng': 121.54357, 'ar': '復興南路二段273號西側', 'sareaen': 'Daan Dist.', 'snaen': 'YouBike2.0_No.273, Sec. 2, Fuxing S. Rd.', 'aren': 'No.273, Sec. 2, Fuxing S. Rd. (West)', 'bemp': 20, 'act': '1', 'srcUpdateTime': '2023-09-07 13:15:42', 'updateTime': '2023-09-07 13:15:52', 'infoTime': '2023-09-07 13:15:05', 'infoDate': '2023-09-07'},


Step0)建立Mysql資料庫的資料表,本範例建立資料表ubike格式如下方SQL。

Step1)須先建立接收的Mysql資料庫,設定好主機位址、資料庫名稱、使用者帳號與密碼,使用pymysql進行連線資料庫。

Step2)定義抓取YouBike資料函式get_ubike_history

Step3)進行資料格式轉換再放入資料庫

Step4)整合Step1到Step3所寫的函式,使用定義fetch_data函式抓取資料儲存到資料庫

Step5)呼叫連線資料庫,使用函式fetch_data取出PM2.5資料儲存到Mysql

完整程式碼如下