今天來說抓取天氣資料,這裡要用到一個套件,requests,這是用來call api,送請求到伺服器,伺服器會回傳資料。
安裝pip3 install requests
$ pip3 install requests
authorization 輸入申請的授權碼
程式碼
import requests
authorization = "xxxx"
url = "https://opendata.cwb.gov.tw/api/v1/rest/datastore/F-D0047-061"
res = requests.get(url, {"Authorization": authorization})
resJson = res.json()
print(resJson)
這樣就會看到結果,是回傳json格式
可以用一些json閱讀器,轉成好看的樣子,或是看說明文件,看資料的結構,不過資料滿多的,這邊先抓溫度,資料有台北市各區三天間隔三小時的溫度資料。
透過文件看到"T"是溫度
欄位說明
程式碼
locations = resJson["records"]["locations"][0]["location"]
for location in locations:
print(location["locationName"])
weatherElements = location["weatherElement"]
for weatherElement in weatherElements:
if weatherElement["elementName"] == "T":
timeDicts = weatherElement["time"]
for timeDict in timeDicts:
print(timeDict["dataTime"], timeDict["elementValue"][0]["value"], timeDict["elementValue"][0]["measures"])
結果 萬華區
參考資料: