首先到https://data.gov.tw搜尋「空氣品質指標」,或是直接連結資料集https://data.gov.tw/dataset/40448

6-1.png

▲下載CSV檔案

6-2.png

▲將CSV存檔至project所在的目錄

6-3.png

▲在pycharm打開CSV後,可安裝Install plugins,較有可讀性

 

接下來這個範例要先安裝2個外部的packages(套件)

6-4.png

▲不過pycharm表示已經安裝(咦?!)

相關文章:

https://pypi.org/project/urllib3/
https://urllib3.readthedocs.io/en/latest/user-guide.html

#程式碼開始

from tkinter import *
import urllib3 #外部的packages
import certifi #https的連線方式

def main():
    w=Tk()
    w.title("範例一")
    w.geometry("500x300") #沒有設定寬x高,將依元件調整視窗大小
    Button(w,text="下載資料",command=downloadAQI).pack(side=LEFT,ipadx=25,ipady=25,expand=YES)
    w.mainloop()

def downloadAQI():
    print("開始下載資料")
    CSV_URL="https://data.epa.gov.tw/api/v1/aqx_p_432?limit=1000&api_key=9be7b239-557b-4c10-9775-78cadfc555e9&format=csv"
    http=urllib3.PoolManager(cert_reqs='CERT_REQUIRED',ca_certs=certifi.where()) #建立https連線
    #如下載網址為http://....則建立http連線為:http = urllib3.PoolManager()
    response = http.request('GET', CSV_URL) #使用GET方法儲存
    if response.status == 200:
        print("下載成功")
        print(response.data)
    else:
        print("下載失敗")
        return #中斷,跳出downloadAQI

if __name__ == "__main__":
    main()

 

#程式碼結束

6-7.png

▲執行時會出現視窗,請點選「下載資料」按鈕

6-6.png

▲執行結果

 

如果要將資料儲存至專案,請使用python內鍵的函數open(),建立file實體進行檔案儲存。以下僅列出downloadAQI之內容:

def downloadAQI():
    print("開始下載資料")
    CSV_URL="https://data.epa.gov.tw/api/v1/aqx_p_432?limit=1000&api_key=9be7b239-557b-4c10-9775-78cadfc555e9&format=csv"
    http=urllib3.PoolManager(cert_reqs='CERT_REQUIRED',ca_certs=certifi.where()) #建立https連線
    #如下載網址為http://....則建立http連線為:http = urllib3.PoolManager()
    response = http.request('GET', CSV_URL) #使用GET方法儲存
    if response.status == 200:
        print("下載成功")
        #儲存檔案,建立file實體
        file=open("空氣品質指標.csv","wb")
        file.write(response.data)
        print("存檔成功")
        file.close() #關閉檔案
    else:
        print("下載失敗")
        return #中斷,跳出downloadAQI

6-8.png

▲執行結果&程式異動處

arrow
arrow
    全站熱搜

    Rinoa 發表在 痞客邦 留言(0) 人氣()