用Python查询肺炎疫情
代码如下:
import requests,json
from tkinter import *
import base64,os
#获取全球疫情数据
def get_data():
#这里使用腾讯api
api = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
data = requests.get(api)
#要使用utf8不然会中文乱码
data.encoding = 'utf-8'
#需loads两次不知道为什么
data = json.loads(data.text)
data = json.loads(data['data'])["areaTree"]
#print(data)
return data
#通用查询
def analytical_data(地区,data=get_data()):
data2 = 0
#设置temp变量用来省略不需要的循环,提高速度
temp = 0
#先查询国家
#遍历所有国家
for i in data:
if i['name'] == 地区:
#先检测如果temp为"1"直接退出(由于是第一个其实可以去掉)
if temp == 1:
break
#记录为data2
data2 = i
#打印确诊人数
#print('确诊人数:'+str(i["total"]["confirm"])+'人')
#若查询成功将temp标记为"1"
temp = 1
break
#如果查询国家失败查询省份
if temp==0:
#遍历所有省份
for i in data[0]["children"]:
if i['name'] == 地区:
#记录为data2
data2 = i
#打印确诊人数
#print('确诊人数:'+str(i["total"]["confirm"])+'人')
#若查询成功将temp标记为"1"
temp = 1
break
#如果查询国家失败查询城市
if temp==0:
for i in data[0]["children"]:
#遍历所有省份
for j in i["children"]:
#遍历每个省份的全部城市
if j['name'] == 地区:
#若查询成功将temp标记为"1"
temp = 1
#记录为data2
data2 = j
#打印确诊人数
#print('确诊人数:'+ str(j["total"]["confirm"])+'人')
break
#由于双重循环需要退出两次
if temp == 1:
break
#返回data2
return data2
def main():
data = analytical_data(inputbox.get())
t.delete('1.0', 'end')
try:
var = '关于{}的最新疫情信息如下:\n确诊人数:{}\n疑似人数:{}\n治愈人数:{}\n死亡人数:{}\n新增确诊:{}\n由于API问题疑似可能不准\n武汉加油!中国加油!'
var = var.format(inputbox.get(),str(data["total"]["confirm"])+'人',str(data["total"]["suspect"]) + '人',str(data["total"]["heal"])+'人',str(data["total"]["dead"])+'人',str(data["today"]["confirm"])+'人')
except:
var = '未找到地区:'+inputbox.get()
t.insert('end',var)
window = Tk()
window.title('新冠肺炎疫情查询')
window.geometry('375x330')
window.resizable(0,0)
diqu_text = Label(window,text='地区',width=3,height=1,font=('微软雅黑',12))
diqu_text.place(x=50,y=30, anchor='nw')
inputbox = Entry(window,width=10,font=('微软雅黑',16))
inputbox.place(x=110,y=30, anchor='nw')
t = Text(window,height=11,width=35,font=('微软雅黑',10))
t.place(x=40,y=80)
b = Button(window,text='查询',width=6,height=1,font=('微软雅黑',10),command=main)
b.place(x=250,y=29, anchor='nw')
window.mainloop()
'''
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
'''
转载至 啊不都的博客
已征得原作者同意转载
本文阅读量次