這篇很簡短~~主要就是紀錄一下如何使用設計完善、方便的「氣象資料開放平台」。
順道整理與介紹一下json的操作及迴圈操作概念。主要還是因為氣象資料實用、常見~相當適合作為練習之用。
這篇python程式內容很簡要,最主要的準備工作其實是:要先去完成「氣象資料開放平台」的會員註冊,並找到所需要的氣象資料API。這樣工作就差不多做完了~~剩下的就是Python的語法操作練習與迴圈概念。
好囉~~先看「氣象資料開放平台」這真是個設計得很完善的開放資料平台,先給個讚👍
程序上~~就是註冊→獲取使用者授權碼→尋找所需資料→設定資料→取得呼叫網址
幾個步驟~~本篇就以如何取得「三十六小時天氣與報資訊」為例進行操作。(平台操作內容就請自行參考下圖進行練習~~就是網站操作而已,就不多做說明了~~打字好累😓)
完成上述操作,最主要就是要獲取「Request URL」
得到Request URL後,對Python而言,獲取資料就是二、三行的事情了!
好了~~程式碼🐎上...........
import requests
api_link = "https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-C0032-001?Authorization=使用者授權碼&locationName=%E6%96%B0%E5%8C%97%E5%B8%82"
re = requests.get(api_link).json()
# print(re) # 觀看獲取的原始資料
# print(re["records"]) # 試著讀取json資料1
# print(re["records"]["location"][0]) # # 試著讀取json資料2
tlist = ["天氣狀況:", "降雨機率:", "最低溫:", "舒適度:", "最高溫:" ] # 設定各項氣象資料對應名稱list
info_title = re["records"]["location"][0]["locationName"] + re["records"]["datasetDescription"]
print(info_title,":\n------------------------------")
# 按預測天氣資訊分類呈現各時段數據
for i in range(len(re["records"]["location"][0]["weatherElement"])):
for j in range(len(re["records"]["location"][0]["weatherElement"][i]["time"])):
print("時間:",re["records"]["location"][0]["weatherElement"][i]["time"][j]["startTime"],"~",re["records"]["location"][0]["weatherElement"][i]["time"][j]["endTime"])
print(tlist[i],re["records"]["location"][0]["weatherElement"][i]["time"][j]["parameter"]["parameterName"])
print("*"*30)
print("++"*20)
# 按天氣預報時間分類呈現各項天氣資訊
for j in range(len(re["records"]["location"][0]["weatherElement"][0]["time"])):
print("時間:", re["records"]["location"][0]["weatherElement"][0]["time"][j]["startTime"], "~",
re["records"]["location"][0]["weatherElement"][0]["time"][j]["endTime"])
for i in range(len(re["records"]["location"][0]["weatherElement"])):
print(tlist[i], re["records"]["location"][0]["weatherElement"][i]["time"][j]["parameter"]["parameterName"])
print("--"*20)
執行後,二種資料呈現方式如下供參:
沒有留言:
張貼留言