爬取現在天氣---加入搜尋與篩選的功能
源自於 https://steam.oxxostudio.tw/category/python/spider/current-weather.html
import requests
#url = '你的氣象觀測資料 JSON 網址'
url = 'https://opendata.cwb.gov.tw/fileapi/v1/opendataapi/O-A0001-001?Authorization=CWB-40C25FFF-1224-4250-B9D9-3735AAE17DBF&downloadType=WEB&format=JSON'
data = requests.get(url)
data_json = data.json()
location = data_json['cwbopendata']['location']
weather = {} # 新增一個 weather 字典
for i in location:
name = i['locationName']
city = i['parameter'][0]['parameterValue']
area = i['parameter'][2]['parameterValue']
temp = i['weatherElement'][3]['elementValue']['value']
humd = round(float(i['weatherElement'][4]['elementValue']['value'] )*100 ,1)
r24 = i['weatherElement'][6] ['elementValue']['value']
msg = f'{temp} 度,相對濕度 {humd}%,累積雨量 {r24}mm' # 組合成天氣描述
try:
weather[city][name]=msg # 記錄地區和描述
except:
weather[city] = {} # 如果每個縣市不是字典,建立第二層字典
weather[city][name]=msg # 記錄地區和描述
show = ''
for i in weather:
show = show + i + ',' # 列出可輸入的縣市名稱
show = show.strip(',') # 移除結尾逗號
a = input(f'請輸入下方其中一個縣市\n( {show} )\n') # 讓使用者輸入縣市名稱
show = ''
for i in weather[a]:
show = show + i + ',' # 列出可輸入的地點名稱
show = show.strip(',') # 移除結尾逗號
b = input(f'請輸入{a}的其中一個地點\n( {show} )\n') # 讓使用者輸入觀測地點名稱
print(f'{a}{b},{weather[a][b]}。') # 顯示結果
沒有留言:
張貼留言