Python + PM25 + AQI
此篇是透過 Python 爬取 AQI 空氣品質指標的資料,再篩選出我們熟悉的細懸浮微粒 PM2.5數據儲存成檔案。
2024 可斟酌搭配 ChatGPT/ClaudeAI 提問如何用 python 爬取 pm2.5,(或是使用 AutoGPT 設定明確目標執行爬蟲),剩下來的時間了解資料結構該如何轉換,思考如何應用在日常生活中,例如用折線圖呈現產出一天內空氣品質變化,結合 IFTTT 超過多少會提醒用戶之類的,並將資料搜集彙整顯示趨勢圖,以供後續研究。
2023-0826 更新:因工作緣故收到國家科學及技術委員會來函,配合本署組改為環境部,本署環境資料關放平臺、環境資源資料交換平臺及環境資源資料交換重構平臺自112年8月22日起變更網址及應用程式介面( Application ProgrammingInterface, API),各平臺API維持新、舊API URL平行服務三個月,請於112年11月22日期限前內完成 API URL 更新。
課堂作業:透過 Pythob 爬取空氣品質 PM2.5 數據,練習如何抓取政府資料開放平台公開資料,解析 JSON
檔案並做檔案處理。
資料型態
我們資料取得的是
JSON
格式requests 獲取資料後將 Json 解析成字典 Dictionary
檢視 Json 的擴充工具 (chrome): https://chrome.google.com/webstore/detail/jsonview/
常見的資料格式 : JSON、CSV、XML
可參考此篇說明:認識 Web API、HTTP 和 JSON 資料交換格式
資訊擷取來源
後來發現有更好用 最新試行版(已正式上架)的
註冊 API Key 後可以篩選更多參數來撈資料
要解析的 json 網址:
資料集名稱先記好比較快找到
註冊 API 使用說明: https://data.moenv.gov.tw/paradigm
該單位也提供了手冊講解如何使用參數,Python 程式範例可供參考( api 網址記得更換到最新版本)
篩選資料
整個流程:request »> json »> dict »> list »> dict » key get value
request 獲得資料,用 json() 方法,將資料轉成字典,Python 可以操作的資料型態。
我們要撈出的資料是 :
|
|
aqi
(value) 最外層是 list
資料型態,再從裡面的 dict
透過 key
(sitename,pm2.5) 取 value
(各縣市,10)。這也代表 list 裡面只要是物件都可以放入。
讀取資料的實作過程可以搭配
|
|
會更容易了解有什麼方法可以用,資料型態是什麼
實作過程
|
|
資料輸出
檔案處理
“r” 唯讀模式
“w” 寫入模式(覆寫)
“a” 寫入模式(續寫)
with open("data_pm25.txt", "w", encoding="utf-8") as file:
再用 for 把資料寫入 file 當中
|
|
檔案讀寫的部分,rwa"+" 模式 可以都試試看,小心檔案被覆蓋 w+ 先讀再寫會:? a+ 先寫再讀會:?
參考資料
補充:ChatGPT 指令大全 https://www.explainthis.io/zh-hant/chatgpt
本篇文章自 index.coderbridge 平台移轉此處
並重新將資料型態的部分重新說明。