2024年2月4日 星期日

 用Python來抓取政府公開資料(JSON):空氣品質

參考來源https://book.whsh.tc.edu.tw/books/python%E6%95%99%E5%AD%B8/page/pythonjson


一、尋找開放資料

 

政府資料開放平台(https://data.gov.tw/

搜尋「空氣品質指標」,或直接打開網址:https://data.gov.tw/dataset/40448 

選擇「JSON」格式

image-1620793287044.png

 

資料欄位的說明及下載網址:

image-1620793319771.png

二、撰寫程式

程式碼範例如下

import  json, ssl, urllib.request

url = 'https://data.moenv.gov.tw/api/v2/aqx_p_432?api_key=e8dd42e6-9b8b-43f8-991e-b3dee723a52d&limit=1000&sort=ImportDate%20desc&format=JSON'

context = ssl._create_unverified_context()

with urllib.request.urlopen(url, context=context) as jsondata:

    #將JSON進行UTF-8的BOM解碼,並把解碼後的資料載入JSON陣列中

     data = json.loads(jsondata.read().decode('utf-8-sig')) 

for i in data['records']:

      print(i['sitename'],' AQI=',i['aqi'], ' 狀態=', i['status'])


執行結果:

>>> %Run -c $EDITOR_CONTENT

基隆  AQI= 32  狀態= 良好

汐止  AQI= 27  狀態= 良好

萬里  AQI= 43  狀態= 良好

新店  AQI= 35  狀態= 良好

土城  AQI= 27  狀態= 良好

板橋  AQI= 25  狀態= 良好

新莊  AQI= 28  狀態= 良好

菜寮  AQI= 27  狀態= 良好

林口  AQI= 31  狀態= 良好

淡水  AQI= 31  狀態= 良好

士林  AQI= 30  狀態= 良好

中山  AQI= 42  狀態= 良好

萬華  AQI= 27  狀態= 良好

古亭  AQI= 28  狀態= 良好

松山  AQI= 36  狀態= 良好

大同  AQI= 40  狀態= 良好

桃園  AQI= 31  狀態= 良好

大園  AQI= 31  狀態= 良好

觀音  AQI= 31  狀態= 良好

平鎮  AQI= 33  狀態= 良好

龍潭  AQI= 33  狀態= 良好

湖口  AQI= 39  狀態= 良好

竹東  AQI= 43  狀態= 良好

新竹  AQI= 45  狀態= 良好

頭份  AQI= 40  狀態= 良好

苗栗  AQI= 63  狀態= 普通

三義  AQI= 57  狀態= 普通

豐原  AQI= 84  狀態= 普通

沙鹿  AQI= 52  狀態= 普通

大里  AQI= 76  狀態= 普通

忠明  AQI= 65  狀態= 普通

西屯  AQI= 63  狀態= 普通

彰化  AQI= 55  狀態= 普通

線西  AQI= 44  狀態= 良好

二林  AQI= 82  狀態= 普通

南投  AQI= 90  狀態= 普通

斗六  AQI= 105  狀態= 對敏感族群不健康

崙背  AQI= 72  狀態= 普通

新港  AQI= 77  狀態= 普通

朴子  AQI= 77  狀態= 普通

臺西  AQI= 44  狀態= 良好

嘉義  AQI= 100  狀態= 普通

新營  AQI= 84  狀態= 普通

善化  AQI= 99  狀態= 普通

安南  AQI= 95  狀態= 普通

臺南  AQI= 91  狀態= 普通

美濃  AQI= 107  狀態= 對敏感族群不健康

橋頭  AQI= 102  狀態= 對敏感族群不健康

仁武  AQI= 103  狀態= 對敏感族群不健康

鳳山  AQI= 73  狀態= 普通

大寮  AQI= 55  狀態= 普通

林園  AQI= 53  狀態= 普通

楠梓  AQI= 103  狀態= 對敏感族群不健康

左營  AQI= 97  狀態= 普通

前金  AQI= 75  狀態= 普通

前鎮  AQI= 60  狀態= 普通

小港  AQI= 54  狀態= 普通

屏東  AQI= 75  狀態= 普通

潮州  AQI= 93  狀態= 普通

恆春  AQI= 25  狀態= 良好

臺東  AQI= 20  狀態= 良好

花蓮  AQI= 25  狀態= 良好

陽明  AQI= 29  狀態= 良好

宜蘭  AQI= 27  狀態= 良好

冬山  AQI= 29  狀態= 良好

三重  AQI= 50  狀態= 良好

中壢  AQI= 35  狀態= 良好

竹山  AQI= 130  狀態= 對敏感族群不健康

永和  AQI= 32  狀態= 良好

復興  AQI= 63  狀態= 普通

埔里  AQI= 70  狀態= 普通

馬祖  AQI= 34  狀態= 良好

金門  AQI= 58  狀態= 普通

馬公  AQI= 39  狀態= 良好

關山  AQI= 21  狀態= 良好

麥寮  AQI= 56  狀態= 普通

富貴角  AQI= 39  狀態= 良好

大城  AQI= 46  狀態= 良好

彰化(員林)  AQI= 85  狀態= 普通

高雄(湖內)  AQI= 81  狀態= 普通

臺南(麻豆)  AQI= 79  狀態= 普通

屏東(琉球)  AQI= 39  狀態= 良好

臺中(大甲)  AQI= 50  狀態= 良好

新北(樹林)  AQI= 37  狀態= 良好

屏東(枋山)  AQI= 25  狀態= 良好

>>> 

沒有留言:

張貼留言

WOKWI LED + MQTT Node-Red SQLite

WOKWI LED + MQTT Node-Red SQLite const char *mqtt_broker = "broker.mqtt-dashboard.com" ; const char *topic1 = "alex9ufo/e...