Flask接口签名sign原理与实例代码浅析
253
2022-08-30
Python采集全国疫情数据,可视化展视图示各数据数值(python疫情数据动态图)
前言
开发环境
python 3.8: 解释器pycharm: 代码编辑器
知识点
代码基本流程requests 发送请求re 正则表达式json 结构化数据解析pyecharts 可视化
先是疫情的数据
实现代码
发送请求获取数据解析数据保存数据
1. 发送请求
headers = { # 浏览器基本信息 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36'}response = requests.get(url=url, headers=headers)print(response)
返回
2. 获取数据
html_data = response.text
3. 解析数据
: 转义字符(把一些含有特定字符的内容转变为普通的字符) [(.*)] []: [ ] (): 我只需要 (里面的内容) .: 匹配任意字符一次 *: 匹配零次或者多次
json_str = re.findall('"component":\[(.*)\],', html_data)[0]# python 字典数据容器# 键值对取值json_dict = json.loads(json_str)caseList = json_dict['caseList']for case in caseList: area = case['area'] # 省份 curConfirm = case['curConfirm'] # 确诊人数 curConfirmRelative = case['curConfirmRelative'] # 确诊人数 confirmed = case['confirmed'] # 确诊人数 crued = case['crued'] # 治愈人数 died = case['died'] # 死亡人数 print(area, curConfirm, curConfirmRelative, confirmed, crued, died)
4. 保存数据(表格)
with open('data.csv', mode='a', encoding='utf-8', newline='') as f: csv_writer = csv.writer(f) csv_writer.writerow([area, curConfirm, curConfirmRelative, confirmed, crued, died])
可视化代码
导入数据
df = pd.read_csv('data.csv', encoding='utf-8')df.head()
各地区确诊人数
china_map = ( Map() .add("现有确诊", [list(i) for i in zip(df['area'].values.tolist(),df['curConfirm'].values.tolist())], "china") .set_global_opts( title_opts=opts.TitleOpts(title="各地区确诊人数"), visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True), ))china_map.render_notebook()
新型冠状病毒全国疫情地图
import pyechartsfrom pyecharts.charts import *from pyecharts import options as optsfrom pyecharts.commons.utils import JsCodefrom pyecharts.datasets import register_urlcofirm, currentCofirm, cured, dead = [], [], [], []tab = Tab()_map = ( Map(init_opts=opts.InitOpts(theme='dark', width='1000px')) .add("累计确诊人数", [list(i) for i in zip(df['area'].values.tolist(),df['confirmed'].values.tolist())], "china", is_map_symbol_show=False, is_roam=False) .set_series_opts(label_opts=opts.LabelOpts(is_show=True)) .set_global_opts( title_opts=opts.TitleOpts(title="新型冠状病毒全国疫情地图", ), legend_opts=opts.LegendOpts(is_show=False), visualmap_opts=opts.VisualMapOpts(is_show=True, max_=1000, is_piecewise=False, range_color=['#FFFFE0', '#FFA07A', '#CD5C5C', '#8B0000']) ))tab.add(_map, '累计确诊')_map = ( Map(init_opts=opts.InitOpts(theme='dark', width='1000px')) .add("当前确诊人数", [list(i) for i in zip(df['area'].values.tolist(),df['curConfirm'].values.tolist())], "china", is_map_symbol_show=False, is_roam=False) .set_series_opts(label_opts=opts.LabelOpts(is_show=True)) .set_global_opts( title_opts=opts.TitleOpts(title="新型冠状病毒全国疫情地图", ), legend_opts=opts.LegendOpts(is_show=False), visualmap_opts=opts.VisualMapOpts(is_show=True, max_=100, is_piecewise=False, range_color=['#FFFFE0', '#FFA07A', '#CD5C5C', '#8B0000']) ))tab.add(_map, '当前确诊')_map = ( Map(init_opts=opts.InitOpts(theme='dark', width='1000px')) .add("治愈人数", [list(i) for i in zip(df['area'].values.tolist(),df['crued'].values.tolist())], "china", is_map_symbol_show=False, is_roam=False) .set_series_opts(label_opts=opts.LabelOpts(is_show=True)) .set_global_opts( title_opts=opts.TitleOpts(title="新型冠状病毒全国疫情地图", ), legend_opts=opts.LegendOpts(is_show=False), visualmap_opts=opts.VisualMapOpts(is_show=True, max_=1000, is_piecewise=False, range_color=['#FFFFE0', 'green']) ))tab.add(_map, '治愈')_map = ( Map(init_opts=opts.InitOpts(theme='dark', width='1000px')) .add("死亡人数", [list(i) for i in zip(df['area'].values.tolist(),df['died'].values.tolist())], "china", is_map_symbol_show=False, is_roam=False) .set_series_opts(label_opts=opts.LabelOpts(is_show=True)) .set_global_opts( title_opts=opts.TitleOpts(title="新型冠状病毒全国疫情地图", ), legend_opts=opts.LegendOpts(is_show=False), visualmap_opts=opts.VisualMapOpts(is_show=True, max_=50, is_piecewise=False, range_color=['#FFFFE0', '#FFA07A', '#CD5C5C', '#8B0000']) ))tab.add(_map, '死亡')tab.render_notebook()
各地区确诊人数与死亡人数情况
bar = ( Bar() .add_xaxis(list(df['area'].values)[:6]) .add_yaxis("死亡", df['died'].values.tolist()[:6]) .add_yaxis("治愈", df['crued'].values.tolist()[:6]) .set_global_opts( title_opts=opts.TitleOpts(title="各地区确诊人数与死亡人数情况"), datazoom_opts=[opts.DataZoomOpts()], ))bar.render_notebook()
Python爬取百度疫情数据
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~