使用Python查詢國內 COVID-19 疫情

roc_guo發表於2021-11-27

首先,我們使用  Tkinter 庫使我們的 可以圖形化顯示。

使用  requests 庫從 丁香園 獲取資料。

然後我們將在這種情況下顯示我們需要的資料 “當前確診人數”,“總確診人數”。

需求和安裝

ssh客戶端為:MobaXterm,因為它支援X11-Forwarding

系統: 8 Minimal

Python版本:Python3.6.8

需要用到的庫: requestsjsontkintertime

下面來安裝xorg,用來在遠端終端中開啟圖形化介面,安裝python3-tkinter來建立GUI介面:

[root@localhost data]# yum -y install xorg-x11-xauth xorg-x11-utils python3-tkinter

下面建立python指令碼:

[root@localhost data]# touch gui.py
[root@localhost data]# chmod +x gui.py
[root@localhost data]# vim gui.py
#!/usr/bin/python3
# 匯入time, requests, json, tkinter庫
import time
import requests
import json
from tkinter import *
# 建立一個視窗
window = Tk()
# 視窗標題為“Covid-19”
window.title("Covid-19")
# 視窗大小為600px * 130px
window.geometry('600x130')
# 建立label 1,並建立初始資訊
lbl = Label(window, text = "The number of confirmed cases in China: ....")
# label窗格佔用第1列,第1行,靠左對齊。
lbl.grid(column = 1, row = 0, sticky = W)
# 建立label 2,並建立初始資訊
lbl1 = Label(window, text = "Cumulative number of confirmed cases in China: ....")
lbl1.grid(column = 1, row = 1, sticky = W)
# 建立label 3,並建立初始資訊,用來顯示時間的。
lbl2 = Label(window, text = "Data update time: ....")
lbl2.grid(column = 1, row = 3, sticky = W)
# 建立label 4,並建立初始資訊,用來顯示是否重新整理。
lbl3 = Label(window, fg = 'green', text = "")
lbl3.grid(column = 1, row = 4, sticky = W)
# 定義一個點選事件
def clicked():
    # 制定API介面的地址
    url = "
    # 獲取url地址
    page = requests.get(url)
    # 將json資料載入記憶體
    data = json.loads(page.text)
    #下面4個變數用來將API中的時間戳轉化為時間。
    tm = data["results"][0]["updateTime"]
    timeStamp = float(tm/1000)
    timeArray = time.localtime(timeStamp)
    updatetime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
    # 當點選時,獲取 currentConfirmedCount 的值,因為text裡面只能用str字串,所以需要將證照型別的數字轉化為字串。
    lbl.configure(text ="The number of confirmed cases in China: " + "%s" %(data["results"][0]["currentConfirmedCount"]))
    lbl1.configure(text ="Cumulative number of confirmed cases in China: " + "%s" %(data["results"][0]["confirmedCount"]))
    lbl2.configure(text ="Data update time: " + updatetime)
    lbl3.configure(text ="State: Refresh")
# 建立一個按鈕,用來重新整理資料。
btn = Button(window, text ="Refresh", command = clicked)
# 按鈕的位置在第2列,第5行。
btn.grid(column = 2, row = 5)
# 顯示視窗
window.mainloop()

解釋:

  • sticky =對齊方式的值有四個,N, S, W, E,代表著東西南北、上下左右。

執行指令碼,輸出如下內容:

[root@localhost data]# ./gui.py

使用Python查詢國內 COVID-19 疫情使用Python查詢國內 COVID-19 疫情
點選Refresh之後,會看到獲取的資料啦。
使用Python查詢國內 COVID-19 疫情使用Python查詢國內 COVID-19 疫情


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2844414/,如需轉載,請註明出處,否則將追究法律責任。

相關文章