实时查询肺炎数据(python3)
本帖最后由 三滑稽甲苯 于 2020-2-14 17:24 编辑数据来源:丁香医生
使用了requests以及PrettyTable库from requests import get
from time import localtime
from prettytable import PrettyTable
def add_0(n):
if n: return str(n)
else: return '0'
def color(m):
return(f'\033[34;m{m}\033[0m')
def time(tick):
def f(x):
if x<10:
return '0'+str(x)
else:
return x
days='Mon','Tues','Wednes','Thurs','Fri','Satur','Sun'
y,m,d,h,mi,s,w=localtime(tick)
return color(f'{y}/{f(m)}/{f(d)} {days}day {f(h)}:{f(mi)}:{f(s)}')
data = get('https://service-f9fjwngp-1252021671.bj.apigw.tencentcs.com/release/pneumonia').json()['data']
print('国内更新时间:', time(data['statistics']['modifyTime']/1000))
wanted = ['confirmed', 'cured', 'dead']
provinces = set()
#国内
tb = PrettyTable()
tb.field_names = ["省份", "确诊", "治愈", "死亡"]
for province in data['listByArea']:
provinces.add(province['provinceShortName'])
tb.add_row(]+) for attr in wanted])
tb.add_row(+)) for attr in wanted])
tb.add_row(+)) for attr in wanted])
print(tb)
while True:
q = input('详细信息:(xx省份/外国)')
if q == '外国':
#外国
tb = PrettyTable()
tb.field_names = ["国家", "确诊", "治愈", "死亡"]
for country in data['listByOther']:
tb.add_row(]+) for attr in wanted])
print(tb)
elif q in provinces:
#城市
tb = PrettyTable()
tb.field_names = ["城市", "确诊", "治愈", "死亡"]
for province in data['listByArea']:
if province['provinceShortName'] == q: areas = province['cities']; break
for area in areas:
tb.add_row( for attr in ['cityName']+wanted])
tb.add_row(+)) for attr in wanted])
print(tb)
else: break
Kok丶Ronin 发表于 2020-2-14 19:08
楼主你好,我复制代码后出现这个问题怎么办
我运行别的也是一样 ,有没有解决办法或者技巧
报错提示很清楚了,你缺模块,你要安装一下
pip installrequests stefaniema 发表于 2020-2-17 21:40
楼主,这个URL好像不支持电脑浏览器爬取,手机端不知道可不可以
现在这个地址好像不能用了 你好楼主能给个成品的下载链接吗? 这个能实时更新吗? 楼主你好,我复制代码后出现这个问题怎么办
我运行别的也是一样 ,有没有解决办法或者技巧 这个可以实时更新吗? 能不能实时更新?前几天在WX看得我很激动 wizll7865 发表于 2020-2-14 18:21
你好楼主能给个成品的下载链接吗?
复制代码就行了啊 Sagitar2009 发表于 2020-2-14 20:22
能不能实时更新?前几天在WX看得我很激动
重新运行代码即可 本项目Github地址:https://github.com/PRO-2684/py-script-collection/blob/master/%E8%82%BA%E7%82%8E.py
页:
[1]
2