TQC+ 網頁資料擷取與分析_Python_205_空氣品質指標(AQI)

文、意如

1. 題目說明:

請開啟PYD02.py檔案,依下列題意進行作答,使輸出值符合題意要求。作答完成請另存新檔為PYA02.py再進行評分。

2. 設計說明:

(1) 請撰寫一程式,爬取政府AQI開放資料,API連結:https://www.codejudger.com/target/5205.json

(2) 程式須回傳下列資訊:

  • 內容長度
  • 新北市每一個地區的相關訊息:地區名稱、AQI指數、PM2.5指數、PM10指數、資料更新時間;
  • 在輸出時,AQI指數、PM2.5指數、PM10指數與資料更新時間四項資訊前加入一個 tab 鍵(\t)

3. 輸入輸出:

輸入說明

爬取API資料

輸出說明

  • 內容長度
  • 新北市每一個地區的相關訊息:地區名稱、AQI指數、PM2.5指數、PM10指數、資料更新時間
  • 在輸出時,AQI指數、PM2.5指數、PM10指數與資料更新時間四項資訊前加入一個 tab 鍵(\t)

範例輸入

範例輸出

Content-Length: 37985

新北市PM2.5相關資料:
汐止:
        AQI:36
        PM2.5:16
        PM10:36
        資料更新時間:2018-06-27 13:00
萬里:
        AQI:49
        PM2.5:10
        PM10:20
        資料更新時間:2018-06-27 13:00
新店:
        AQI:45
        PM2.5:22
        PM10:22
        資料更新時間:2018-06-27 13:00
土城:
        AQI:60
        PM2.5:20
        PM10:32
        資料更新時間:2018-06-27 13:00
板橋:
        AQI:38
        PM2.5:15
        PM10:42
        資料更新時間:2018-06-27 13:00
新莊:
        AQI:42
        PM2.5:12
        PM10:27
        資料更新時間:2018-06-27 13:00
菜寮:
        AQI:60
        PM2.5:20
        PM10:32
        資料更新時間:2018-06-27 13:00
林口:
        AQI:58
        PM2.5:19
        PM10:27
        資料更新時間:2018-06-27 13:00
淡水:
        AQI:40
        PM2.5:10
        PM10:16
        資料更新時間:2018-06-27 13:00
三重:
        AQI:60
        PM2.5:19
        PM10:62
        資料更新時間:2018-06-27 13:00
永和:
        AQI:50
        PM2.5:21
        PM10:35
        資料更新時間:2018-06-27 13:00
富貴角:
        AQI:42
        PM2.5:
        PM10:11
        資料更新時間:2018-06-27 13:00

題目題示:

# 載入 requests 與 json 模組
import ___
import ___

# 開放資料Json格式連結
url = ___
# 發出Get請求
response = ___
# 回傳內容長度
print(___, ___)
# 將取得的回傳內容轉換成Json格式
response = ___

print()

# 顯示新北市每一個地區的PM2.5相關資料
print('新北市PM2.5相關資料:')
for record in response:
    if record['County'] == '___':
        print('%s:' % record['___'])
        print('AQI:%s' % record['___'])
        print('PM2.5:%s' % record['___'])
        print('PM10:%s' % record['___'])
        print('資料更新時間:%s' % record['___'])

參考解答:

# 匯入所需模組
import requests
import json

# 使用 requests 套件發送 GET 請求,取得 JSON 格式的資料
response = requests.get('http://tqc.codejudger.com:3000/target/5205.json')

# 印出回應內容的長度,即檢查資料的大小
print('Content-Length:',len( response.content ) )

# 使用 json.loads() 方法將 JSON 格式的資料轉換為 Python 資料結構
response1 = json.loads( response.text )

print()

print('新北市PM2.5相關資料:')
# 遍歷 JSON 資料,篩選出屬於 '新北市' 的資料並印出相關資訊
for record in response1:
    if record['County'] == '新北市':
        print('%s:' % record['SiteName'])
        print('\tAQI:%s' % record['AQI'])
        print('\tPM2.5:%s' % record['PM2.5'])
        print('\tPM10:%s' % record['PM10'])
        print('\t資料更新時間:%s' % record['PublishTime'])

執行結果

參考

Yiru@Studio - 關於我 - 意如