修改数据接口为腾讯疫情数据接口
This commit is contained in:
@@ -1,78 +1,81 @@
|
||||
from flask import Flask
|
||||
from flask import render_template
|
||||
from flask import jsonify
|
||||
import time
|
||||
|
||||
from flask import Flask
|
||||
from flask import jsonify
|
||||
from flask import render_template
|
||||
|
||||
import utils
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
#工具类,初始化参数为数据库名,数据库表名,数据库账号,数据库密码
|
||||
u=utils.utils("myspider","epidemic","root","123456")
|
||||
# 工具类,初始化参数为数据库名,数据库表名,数据库账号,数据库密码
|
||||
u = utils.utils("myspider", "root", "123456")
|
||||
|
||||
|
||||
@app.route('/')
|
||||
def hello_world():
|
||||
return render_template("main.html")
|
||||
|
||||
|
||||
@app.route('/time')
|
||||
def get_time():
|
||||
time_str=time.strftime("%Y{}%m{}%d{}%X")
|
||||
return time_str.format("年","月","日")
|
||||
time_str = time.strftime("%Y{}%m{}%d{}%X")
|
||||
return time_str.format("年", "月", "日")
|
||||
|
||||
|
||||
@app.route('/c1')
|
||||
def get_c1_data():
|
||||
data=u.get_c1_data()
|
||||
data = u.get_c1_data()
|
||||
print(data)
|
||||
return jsonify({"dignose":data[0],"heal":data[1],"dead":data[2],"newly_add":data[3]})
|
||||
return jsonify({"dignose": data[0], "heal": data[1], "dead": data[2], "newly_add": data[3]})
|
||||
|
||||
|
||||
@app.route('/c2')
|
||||
def get_c2_data():
|
||||
res=[]
|
||||
data=u.get_c2_data()
|
||||
for key,value in data.items():
|
||||
res.append({"name":key,"value":value})
|
||||
return jsonify({"data":res})
|
||||
res = []
|
||||
data = u.get_c2_data()
|
||||
for key, value in data.items():
|
||||
res.append({"name": key, "value": value})
|
||||
return jsonify({"data": res})
|
||||
|
||||
|
||||
@app.route('/l1')
|
||||
def get_l1_data():
|
||||
data = u.get_l1_data()
|
||||
day = data.date.tolist()
|
||||
dignose = data.confirm.tolist()
|
||||
heal = data.heal.tolist()
|
||||
dead = data.dead.tolist()
|
||||
return jsonify({"days": day, "dignose": dignose, "heal": heal, "dead": dead})
|
||||
|
||||
data=u.get_l1_data()
|
||||
day = []
|
||||
for d in data.index:
|
||||
day.append(d.strftime("%m-%d"))
|
||||
print(day)
|
||||
dignose=data.确诊.tolist()
|
||||
heal=data.治愈.tolist()
|
||||
dead=data.死亡.tolist()
|
||||
return jsonify({"days":day,"dignose":dignose,"heal":heal,"dead":dead})
|
||||
|
||||
@app.route('/l2')
|
||||
def get_l2_data():
|
||||
data = u.get_l2_data()
|
||||
day = []
|
||||
for d in data.index:
|
||||
day.append(d.strftime("%m-%d"))
|
||||
dignose=data.确诊.tolist()
|
||||
heal=data.治愈.tolist()
|
||||
dead=u.get_l1_data().新增死亡.tolist()
|
||||
return jsonify({"days":day,"dignose":dignose,"heal":heal,"dead":dead})
|
||||
day = data.date.tolist()
|
||||
dignose = data.confirm.tolist()
|
||||
heal = data.heal.tolist()
|
||||
dead = data.dead.tolist()
|
||||
return jsonify({"days": day, "dignose": dignose, "heal": heal, "dead": dead})
|
||||
|
||||
|
||||
@app.route('/r1')
|
||||
def get_r1_data():
|
||||
data=u.get_r1_data()
|
||||
keys=list(data.keys())
|
||||
values=list(data.values())
|
||||
print(keys,values)
|
||||
return jsonify({"keys":keys,"values":values})
|
||||
data = u.get_r1_data()
|
||||
keys = data.疫情地区.tolist()
|
||||
values = data.确诊.tolist()
|
||||
return jsonify({"keys": keys, "values": values})
|
||||
|
||||
|
||||
@app.route('/r2')
|
||||
def get_r2_data():
|
||||
res=[]
|
||||
myutil=utils.utils("myspider","world_epidemic","root","123456")
|
||||
data=myutil.get_r2_data()
|
||||
for key, value in data.items():
|
||||
res = []
|
||||
data = u.get_r2_data()
|
||||
for key, value in zip(data.name,data.确诊):
|
||||
res.append({"name": key, "value": value})
|
||||
#还需要添加中国的总数据
|
||||
china=int(u.get_c1_data()[0])
|
||||
res.append({"name":"China","value":china})
|
||||
# 还需要添加中国的总数据
|
||||
china = int(u.get_c1_data()[0])
|
||||
res.append({"name": "China", "value": china})
|
||||
return jsonify({"data": res})
|
||||
|
||||
|
||||
|
||||
@@ -1,57 +1,135 @@
|
||||
import requests
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time :2021/7/30 23:34
|
||||
# @Author :lzh
|
||||
# @File : new_spider.py
|
||||
# @Software: PyCharm
|
||||
import datetime
|
||||
|
||||
import pandas as pd
|
||||
import json
|
||||
import requests
|
||||
from sqlalchemy import create_engine
|
||||
|
||||
url='https://voice.baidu.com/newpneumonia/get?target=trend&isCaseIn=0&stage=publish&callback=jsonp_1593074577909_83653'
|
||||
r=requests.get(url).text
|
||||
from translate import COUNTRIES_CH_EN_DICT
|
||||
|
||||
#标准化字符串为json格式
|
||||
r=r.replace("jsonp_1593074577909_83653(","")
|
||||
r=r[0:-2]
|
||||
r=json.loads(r)
|
||||
|
||||
names=[]
|
||||
dates=[]
|
||||
dignose=[]
|
||||
heal=[]
|
||||
dead=[]
|
||||
add=[]
|
||||
#遍历每个地点
|
||||
for place in r['data']:
|
||||
# print(place['name'])
|
||||
length=len(place['trend']['updateDate'])
|
||||
place_name=(place['name'] for i in range(length))
|
||||
names.extend(place_name)
|
||||
#获取日期数据
|
||||
dates.extend(place['trend']['updateDate'])
|
||||
for trend in place['trend']['list']:
|
||||
if(trend['name']=='确诊'):
|
||||
dignose.extend(trend['data'])
|
||||
if(trend['name']=='治愈'):
|
||||
heal.extend(trend['data'])
|
||||
if(trend['name']=='死亡'):
|
||||
dead.extend(trend['data'])
|
||||
if(trend['name']=='新增确诊'):
|
||||
add.extend(trend['data'])
|
||||
def traslate(word):
|
||||
'''
|
||||
将世界各国的中文名转化为英文
|
||||
'''
|
||||
return COUNTRIES_CH_EN_DICT.get(word, "未知地区")
|
||||
|
||||
#新增确诊数据如果存在缺失值,则将缺失值填充为0
|
||||
diff=len(names)-len(add)
|
||||
if(diff!=0):
|
||||
add=add+[0 for i in range(diff)]
|
||||
print(len(names),len(dates),len(dignose),len(heal),len(dead),len(add))
|
||||
|
||||
# 将数据保存至数据库中
|
||||
df=pd.DataFrame({
|
||||
"疫情地区":names,
|
||||
"日期":dates,
|
||||
"确诊":dignose,
|
||||
"治愈":heal,
|
||||
"死亡":dead,
|
||||
"新增死亡":add
|
||||
})
|
||||
df['日期']=['2020.'+i for i in df['日期']]
|
||||
df['日期']=df['日期'].str.replace(".","-")
|
||||
df['日期']=pd.to_datetime(df['日期'])
|
||||
conn = create_engine('mysql://root:123456@localhost:3306/myspider?charset=utf8')
|
||||
pd.io.sql.to_sql(df,'epidemic',con=conn,if_exists = 'replace',index=None)
|
||||
# %%
|
||||
def save_data(df, table_name, if_exists="append", need_translate=False):
|
||||
if need_translate:
|
||||
df['name'] = df['疫情地区'].apply(traslate)
|
||||
conn = create_engine('mysql://root:123456@localhost:3306/myspider?charset=utf8')
|
||||
pd.io.sql.to_sql(df, table_name, con=conn, if_exists=if_exists, index=None)
|
||||
|
||||
|
||||
def crawl_china_data():
|
||||
url = "https://api.inews.qq.com/newsqa/v1/query/inner/publish/modules/list?modules=chinaDayList,chinaDayAddList,nowConfirmStatis,provinceCompare"
|
||||
data = requests.get(url)
|
||||
data = data.json().get("data", {})
|
||||
provinceCompare = data.get("provinceCompare") # 每个省份的总数据(每日更新)
|
||||
chinaDayList = data.get("chinaDayList") # 最近一个月的全国疫情的总数据
|
||||
chinaDayAddList = data.get("chinaDayAddList") # 最近一个月的全国疫情的新增数据
|
||||
return provinceCompare, chinaDayList, chinaDayAddList
|
||||
|
||||
|
||||
# %%
|
||||
def crawl_countries_data():
|
||||
url = "https://api.inews.qq.com/newsqa/v1/automation/modules/list?modules=FAutoforeignList"
|
||||
data = requests.get(url)
|
||||
data = data.json().get("data")
|
||||
foreignList = data.get("FAutoforeignList", [])
|
||||
return foreignList
|
||||
|
||||
|
||||
def parse_china_daily_data(day_list, day_add_list):
|
||||
"""
|
||||
解析每日新增、每日累计数据
|
||||
:param api_rtn_data:
|
||||
:return:
|
||||
"""
|
||||
day_df = pd.DataFrame(day_list)
|
||||
day_df["date"] = pd.to_datetime(day_df["y"] + "." + day_df["date"])
|
||||
day_add_df = pd.DataFrame(day_add_list)
|
||||
day_add_df["date"] = pd.to_datetime(day_add_df["y"] + "." + day_add_df["date"])
|
||||
save_data(day_df, "china_day", "append")
|
||||
save_data(day_add_df, "china_day_add", "append")
|
||||
|
||||
|
||||
def parse_countries_total_data(api_rtn_data):
|
||||
"""
|
||||
解析每个省份的新增数据
|
||||
:param api_rtn_data:
|
||||
:return:
|
||||
"""
|
||||
dates = []
|
||||
countries = []
|
||||
dignose = []
|
||||
heal = []
|
||||
dead = []
|
||||
add = []
|
||||
for country in api_rtn_data:
|
||||
countries.append(country.get("name", ""))
|
||||
month, day = country.get("date").split(".")
|
||||
month = month if "0" not in month else month[-1]
|
||||
date = datetime.date(int(country.get("y")), int(month), int(day))
|
||||
dates.append(date)
|
||||
dignose.append(country.get("nowConfirm", 0))
|
||||
heal.append(country.get("heal", 0))
|
||||
dead.append(country.get("dead", 0))
|
||||
add.append(country.get("confirmAdd", 0))
|
||||
df = pd.DataFrame({
|
||||
"疫情地区": countries,
|
||||
"日期": dates,
|
||||
"确诊": dignose,
|
||||
"治愈": heal,
|
||||
"死亡": dead,
|
||||
"新增死亡": add
|
||||
})
|
||||
|
||||
save_data(df, "world_epidemic", "replace", True)
|
||||
return df
|
||||
|
||||
|
||||
def parse_provinces_total_data(api_rtn_data):
|
||||
dates = []
|
||||
provinces = []
|
||||
dignose = []
|
||||
heal = []
|
||||
dead = []
|
||||
add = []
|
||||
for province, total_data in api_rtn_data.items():
|
||||
provinces.append(province)
|
||||
date = datetime.datetime.now()
|
||||
dates.append(date)
|
||||
dignose.append(total_data.get("nowConfirm", 0))
|
||||
heal.append(total_data.get("heal", 0))
|
||||
dead.append(total_data.get("dead", 0))
|
||||
add.append(total_data.get("confirmAdd", 0))
|
||||
df = pd.DataFrame({
|
||||
"疫情地区": provinces,
|
||||
"日期": dates,
|
||||
"确诊": dignose,
|
||||
"治愈": heal,
|
||||
"死亡": dead,
|
||||
"新增死亡": add
|
||||
})
|
||||
save_data(df, 'china_total_epidemic')
|
||||
return df
|
||||
|
||||
|
||||
# %%
|
||||
def main():
|
||||
provinceCompare, chinaDayList, chinaDayAddList = crawl_china_data()
|
||||
parse_china_daily_data(chinaDayList, chinaDayAddList)
|
||||
parse_provinces_total_data(provinceCompare)
|
||||
parse_countries_total_data(crawl_countries_data())
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
print("爬取完成")
|
||||
|
||||
@@ -49,7 +49,7 @@ body{
|
||||
}
|
||||
#l1{
|
||||
position: absolute;
|
||||
width: 30%;
|
||||
width: 25%;
|
||||
height: 45%;
|
||||
top: 10%;
|
||||
left: 0%;
|
||||
@@ -57,7 +57,7 @@ body{
|
||||
}
|
||||
#l2{
|
||||
position: absolute;
|
||||
width: 30%;
|
||||
width: 25%;
|
||||
height: 45%;
|
||||
top: 55%;
|
||||
left: 0%;
|
||||
@@ -81,7 +81,7 @@ body{
|
||||
}
|
||||
#r1{
|
||||
position: absolute;
|
||||
width: 30%;
|
||||
width: 35%;
|
||||
height: 45%;
|
||||
top: 10%;
|
||||
right: 0%;
|
||||
@@ -89,7 +89,7 @@ body{
|
||||
}
|
||||
#r2{
|
||||
position: absolute;
|
||||
width: 30%;
|
||||
width: 35%;
|
||||
height: 45%;
|
||||
top: 55%;
|
||||
right: 0%;
|
||||
|
||||
@@ -81,7 +81,7 @@ function get_r1_data(){
|
||||
url:"/r1",
|
||||
timeout:10000,
|
||||
success:function (data) {
|
||||
ec_right1_option.xAxis.data=data.keys
|
||||
ec_right1_option.xAxis[0].data=data.keys
|
||||
ec_right1_option.series[0].data=data.values
|
||||
ec_right1.setOption(ec_right1_option)
|
||||
},
|
||||
@@ -114,4 +114,4 @@ get_l1_data()
|
||||
get_l2_data()
|
||||
get_r1_data()
|
||||
get_r2_data()
|
||||
setInterval(gettime,1000)
|
||||
// setInterval(gettime,100000)
|
||||
@@ -21,7 +21,7 @@ var ec_center_option = {
|
||||
color: ['#e0ffff', '#9D3030']
|
||||
},
|
||||
show:true,
|
||||
splitList:[{start:1,end:9},
|
||||
splitList:[{start:0,end:9},
|
||||
{start:10,end:99},
|
||||
{start:100,end:999},
|
||||
{start:1000,end:9999},
|
||||
|
||||
@@ -1,24 +1,46 @@
|
||||
var ec_right1=echarts.init(document.getElementById("r1"),"dark")
|
||||
var ec_right1 = echarts.init(document.getElementById("r1"), "dark")
|
||||
|
||||
var ec_right1_option = {
|
||||
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
||||
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '非湖北地区确诊人数top5',
|
||||
text: '全球地区确诊人数top5',
|
||||
left: "left"
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [{
|
||||
data: [120, 200, 150, 80, 70, 110, 130],
|
||||
type: 'bar',
|
||||
showBackground: true,
|
||||
backgroundStyle: {
|
||||
color: 'rgba(220, 220, 220, 0.8)'
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
|
||||
axisTick: {
|
||||
alignWithLabel: true
|
||||
}
|
||||
}
|
||||
}]
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '确诊数量',
|
||||
type: 'bar',
|
||||
barWidth: '60%',
|
||||
data: [10, 52, 200, 334, 390, 330, 220]
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
|
||||
ec_right1.setOption(ec_right1_option)
|
||||
@@ -23,12 +23,12 @@
|
||||
<div class="txt"><h2>累计确诊</h2></div>
|
||||
<div class="txt"><h2>累计治愈</h2></div>
|
||||
<div class="txt"><h2>累计死亡</h2></div>
|
||||
<div class="txt"><h2>新增死亡</h2></div>
|
||||
<div class="txt"><h2>现存确诊</h2></div>
|
||||
|
||||
</div>
|
||||
<div id="c2">我是中2</div>
|
||||
<div id="r1">我是右1</div>
|
||||
<div id="r2">我是右2</div>
|
||||
<div id="c2">大屏中间第二幅图——中国疫情地图</div>
|
||||
<div id="r1">大屏右侧第一幅图——全球确诊top5国家</div>
|
||||
<div id="r2">大屏中间第二幅图——世界疫情地图</div>
|
||||
<script src="../static/js/ec_c2.js"></script>
|
||||
<script src="../static/js/controller.js"></script>
|
||||
<script src="../static/js/ec_l1.js"></script>
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
from pyecharts import Bar
|
||||
# from snapshot_selenium import snapshot
|
||||
# from pyecharts.render import make_snapshot
|
||||
columns = ['大大的三个字', '这里一共是十个字的吧', '这里一共是十个字的吧(这里是七个字)', '其他', '十全十美的十个字啊', 'python仪表盘', '快乐三个字', '可乐续保三个字', '骑缝三个字',
|
||||
'里面好玩三个字', '信用卡三个字', '没空理我的', '订单问问三个字', '紫金学习三个字', '袋鼠妈妈三个字', '楼面价微信交流群', '密码三个字', '看见了来看看了解是是是',
|
||||
'大门口流量数据', '烤面筋解决三个字', '到读到蓝莓味']
|
||||
# # 设置数据
|
||||
data1 = [841, 0, 136, 0, 3317, 784, 1, 19, 691, 131, 21, 6461, 123, 0, 692, 0, 0, 0, 0, 0, 0]
|
||||
data2 = [13056, 16614, 701, 0, 5815, 4274, 256, 689, 13838, 21723, 0, 16073, 28297, 0, 279, 463, 25261, 60400, 0, 2493,
|
||||
16]
|
||||
# # 设置柱状图的主标题与副标题
|
||||
bar = Bar("这里是大标题", "这里上介绍文字",width=1200,height=600)
|
||||
# # 添加柱状图的数据及配置项
|
||||
def label_formatter(params):
|
||||
return str(params.value)+"\t\t"
|
||||
bar.add("外网", columns, data1, bar_category_gap='10%',label_formatter=label_formatter,xaxis_label_textsize=6,grid_bottom=500,label_text_size=8,is_label_show=True,xaxis_rotate=30)
|
||||
bar.add("内网", columns, data2,bar_category_gap='10%',label_formatter=label_formatter,xaxis_label_textsize=6,grid_bottom=500,label_text_size=8,is_label_show=True, xaxis_rotate=30)
|
||||
print(help(bar))
|
||||
# # 生成本地文件(默认为.html文件)
|
||||
bar.render('tesss.jpg')
|
||||
# make_snapshot(snapshot, bar.render(), "003_Options配置项_自定义样式_保存图片.png")
|
||||
@@ -0,0 +1,434 @@
|
||||
COUNTRIES_EN_CH_DICT = {
|
||||
"Somalia": "索马里",
|
||||
"Liechtenstein": "列支敦士登",
|
||||
"Morocco": "摩洛哥",
|
||||
"W. Sahara": "西撒哈拉",
|
||||
"Serbia": "塞尔维亚",
|
||||
"Afghanistan": "阿富汗",
|
||||
"Angola": "安哥拉",
|
||||
"Albania": "阿尔巴尼亚",
|
||||
"Andorra": "安道尔共和国",
|
||||
"United Arab Emirates": "阿拉伯联合酋长国",
|
||||
"Argentina": "阿根廷",
|
||||
"Armenia": "亚美尼亚",
|
||||
"Australia": "澳大利亚",
|
||||
"Austria": "奥地利",
|
||||
"Azerbaijan": "阿塞拜疆",
|
||||
"Burundi": "布隆迪",
|
||||
"Belgium": "比利时",
|
||||
"Benin": "贝宁",
|
||||
"Burkina Faso": "布基纳法索",
|
||||
"Bangladesh": "孟加拉国",
|
||||
"Bulgaria": "保加利亚",
|
||||
"Bahrain": "巴林",
|
||||
"Bahamas": "巴哈马",
|
||||
"Bosnia and Herz.": "波斯尼亚和黑塞哥维那",
|
||||
"Belarus": "白俄罗斯",
|
||||
"Belize": "伯利兹",
|
||||
"Bermuda": "百慕大",
|
||||
"Bolivia": "玻利维亚",
|
||||
"Brazil": "巴西",
|
||||
"Barbados": "巴巴多斯",
|
||||
"Brunei": "文莱",
|
||||
"Bhutan": "不丹",
|
||||
"Botswana": "博茨瓦纳",
|
||||
"Central African Rep.": "中非",
|
||||
"Canada": "加拿大",
|
||||
"Switzerland": "瑞士",
|
||||
"Chile": "智利",
|
||||
"China": "中国",
|
||||
"Côte dIvoire": "科特迪瓦",
|
||||
"Cameroon": "喀麦隆",
|
||||
"Dem. Rep. Congo": "刚果民主共和国",
|
||||
"Congo": "刚果",
|
||||
"Colombia": "哥伦比亚",
|
||||
"Cape Verde": "佛得角",
|
||||
"Costa Rica": "哥斯达黎加",
|
||||
"Cuba": "古巴",
|
||||
"N. Cyprus": "北塞浦路斯",
|
||||
"Cyprus": "塞浦路斯",
|
||||
"Czech Rep.": "捷克",
|
||||
"Germany": "德国",
|
||||
"Djibouti": "吉布提",
|
||||
"Denmark": "丹麦",
|
||||
"Dominican Rep.": "多米尼加",
|
||||
"Algeria": "阿尔及利亚",
|
||||
"Ecuador": "厄瓜多尔",
|
||||
"Egypt": "埃及",
|
||||
"Eritrea": "厄立特里亚",
|
||||
"Spain": "西班牙",
|
||||
"Estonia": "爱沙尼亚",
|
||||
"Ethiopia": "埃塞俄比亚",
|
||||
"Finland": "芬兰",
|
||||
"Fiji": "斐济",
|
||||
"France": "法国",
|
||||
"Gabon": "加蓬",
|
||||
"United Kingdom": "英国",
|
||||
"Georgia": "格鲁吉亚",
|
||||
"Ghana": "加纳",
|
||||
"Guinea": "几内亚",
|
||||
"Gambia": "冈比亚",
|
||||
"Guinea-Bissau": "几内亚比绍",
|
||||
"Eq. Guinea": "赤道几内亚",
|
||||
"Greece": "希腊",
|
||||
"Grenada": "格林纳达",
|
||||
"Greenland": "格陵兰",
|
||||
"Guatemala": "危地马拉",
|
||||
"Guam": "关岛",
|
||||
"Guyana": "圭亚那",
|
||||
"Honduras": "洪都拉斯",
|
||||
"Croatia": "克罗地亚",
|
||||
"Haiti": "海地",
|
||||
"Hungary": "匈牙利",
|
||||
"Indonesia": "印度尼西亚",
|
||||
"India": "印度",
|
||||
"Br. Indian Ocean Ter.": "英属印度洋领土",
|
||||
"Ireland": "爱尔兰",
|
||||
"Iran": "伊朗",
|
||||
"Iraq": "伊拉克",
|
||||
"Iceland": "冰岛",
|
||||
"Israel": "以色列",
|
||||
"Italy": "意大利",
|
||||
"Jamaica": "牙买加",
|
||||
"Jordan": "约旦",
|
||||
"Japan": "日本",
|
||||
"Siachen Glacier": "锡亚琴冰川",
|
||||
"Kazakhstan": "哈萨克斯坦",
|
||||
"Kenya": "肯尼亚",
|
||||
"Kyrgyzstan": "吉尔吉斯坦",
|
||||
"Cambodia": "柬埔寨",
|
||||
"Korea": "韩国",
|
||||
"Kuwait": "科威特",
|
||||
"Lao PDR": "老挝",
|
||||
"Lebanon": "黎巴嫩",
|
||||
"Liberia": "利比里亚",
|
||||
"Libya": "利比亚",
|
||||
"Sri Lanka": "斯里兰卡",
|
||||
"Lesotho": "莱索托",
|
||||
"Lithuania": "立陶宛",
|
||||
"Luxembourg": "卢森堡",
|
||||
"Latvia": "拉脱维亚",
|
||||
"Moldova": "摩尔多瓦",
|
||||
"Madagascar": "马达加斯加",
|
||||
"Mexico": "墨西哥",
|
||||
"Macedonia": "马其顿",
|
||||
"Mali": "马里",
|
||||
"Malta": "马耳他",
|
||||
"Myanmar": "缅甸",
|
||||
"Montenegro": "黑山",
|
||||
"Mongolia": "蒙古",
|
||||
"Mozambique": "莫桑比克",
|
||||
"Mauritania": "毛里塔尼亚",
|
||||
"Mauritius": "毛里求斯",
|
||||
"Malawi": "马拉维",
|
||||
"Malaysia": "马来西亚",
|
||||
"Namibia": "纳米比亚",
|
||||
"New Caledonia": "新喀里多尼亚",
|
||||
"Niger": "尼日尔",
|
||||
"Nigeria": "尼日利亚",
|
||||
"Nicaragua": "尼加拉瓜",
|
||||
"Netherlands": "荷兰",
|
||||
"Norway": "挪威",
|
||||
"Nepal": "尼泊尔",
|
||||
"New Zealand": "新西兰",
|
||||
"Oman": "阿曼",
|
||||
"Pakistan": "巴基斯坦",
|
||||
"Panama": "巴拿马",
|
||||
"Peru": "秘鲁",
|
||||
"Philippines": "菲律宾",
|
||||
"Papua New Guinea": "巴布亚新几内亚",
|
||||
"Poland": "波兰",
|
||||
"Puerto Rico": "波多黎各",
|
||||
"Dem. Rep. Korea": "朝鲜",
|
||||
"Portugal": "葡萄牙",
|
||||
"Paraguay": "巴拉圭",
|
||||
"Palestine": "巴勒斯坦",
|
||||
"Qatar": "卡塔尔",
|
||||
"Romania": "罗马尼亚",
|
||||
"Russia": "俄罗斯",
|
||||
"Rwanda": "卢旺达",
|
||||
"Saudi Arabia": "沙特阿拉伯",
|
||||
"Sudan": "苏丹",
|
||||
"S. Sudan": "南苏丹",
|
||||
"Senegal": "塞内加尔",
|
||||
"Singapore": "新加坡",
|
||||
"Solomon Is.": "所罗门群岛",
|
||||
"Sierra Leone": "塞拉利昂",
|
||||
"El Salvador": "萨尔瓦多",
|
||||
"Suriname": "苏里南",
|
||||
"Slovakia": "斯洛伐克",
|
||||
"Slovenia": "斯洛文尼亚",
|
||||
"Sweden": "瑞典",
|
||||
"Swaziland": "斯威士兰",
|
||||
"Seychelles": "塞舌尔",
|
||||
"Syria": "叙利亚",
|
||||
"Chad": "乍得",
|
||||
"Togo": "多哥",
|
||||
"Thailand": "泰国",
|
||||
"Tajikistan": "塔吉克斯坦",
|
||||
"Turkmenistan": "土库曼斯坦",
|
||||
"Timor-Leste": "东帝汶",
|
||||
"Tonga": "汤加",
|
||||
"Trinidad and Tobago": "特立尼达和多巴哥",
|
||||
"Tunisia": "突尼斯",
|
||||
"Turkey": "土耳其",
|
||||
"Tanzania": "坦桑尼亚",
|
||||
"Uganda": "乌干达",
|
||||
"Ukraine": "乌克兰",
|
||||
"Uruguay": "乌拉圭",
|
||||
"United States": "美国",
|
||||
"Uzbekistan": "乌兹别克斯坦",
|
||||
"Venezuela": "委内瑞拉",
|
||||
"Vietnam": "越南",
|
||||
"Vanuatu": "瓦努阿图",
|
||||
"Yemen": "也门",
|
||||
"South Africa": "南非",
|
||||
"Zambia": "赞比亚",
|
||||
"Zimbabwe": "津巴布韦",
|
||||
"Aland": "奥兰群岛",
|
||||
"American Samoa": "美属萨摩亚",
|
||||
"Fr. S. Antarctic Lands": "南极洲",
|
||||
"Antigua and Barb.": "安提瓜和巴布达",
|
||||
"Comoros": "科摩罗",
|
||||
"Curaçao": "库拉索岛",
|
||||
"Cayman Is.": "开曼群岛",
|
||||
"Dominica": "多米尼加",
|
||||
"Falkland Is.": "马尔维纳斯群岛(福克兰)",
|
||||
"Faeroe Is.": "法罗群岛",
|
||||
"Micronesia": "密克罗尼西亚",
|
||||
"Heard I. and McDonald Is.": "赫德岛和麦克唐纳群岛",
|
||||
"Isle of Man": "曼岛",
|
||||
"Jersey": "泽西岛",
|
||||
"Kiribati": "基里巴斯",
|
||||
"Saint Lucia": "圣卢西亚",
|
||||
"N. Mariana Is.": "北马里亚纳群岛",
|
||||
"Montserrat": "蒙特塞拉特",
|
||||
"Niue": "纽埃",
|
||||
"Palau": "帕劳",
|
||||
"Fr. Polynesia": "法属波利尼西亚",
|
||||
"S. Geo. and S. Sandw. Is.": "南乔治亚岛和南桑威奇群岛",
|
||||
"Saint Helena": "圣赫勒拿",
|
||||
"St. Pierre and Miquelon": "圣皮埃尔和密克隆群岛",
|
||||
"São Tomé and Principe": "圣多美和普林西比",
|
||||
"Turks and Caicos Is.": "特克斯和凯科斯群岛",
|
||||
"St. Vin. and Gren.": "圣文森特和格林纳丁斯",
|
||||
"U.S. Virgin Is.": "美属维尔京群岛",
|
||||
"Samoa": "萨摩亚"
|
||||
}
|
||||
# 中文-英文字典
|
||||
COUNTRIES_CH_EN_DICT = {
|
||||
"索马里": "Somalia",
|
||||
"列支敦士登": "Liechtenstein",
|
||||
"摩洛哥": "Morocco",
|
||||
"西撒哈拉": "W. Sahara",
|
||||
"塞尔维亚": "Serbia",
|
||||
"阿富汗": "Afghanistan",
|
||||
"安哥拉": "Angola",
|
||||
"阿尔巴尼亚": "Albania",
|
||||
"安道尔共和国": "Andorra",
|
||||
"阿拉伯联合酋长国": "United Arab Emirates",
|
||||
"阿根廷": "Argentina",
|
||||
"亚美尼亚": "Armenia",
|
||||
"澳大利亚": "Australia",
|
||||
"奥地利": "Austria",
|
||||
"阿塞拜疆": "Azerbaijan",
|
||||
"布隆迪": "Burundi",
|
||||
"比利时": "Belgium",
|
||||
"贝宁": "Benin",
|
||||
"布基纳法索": "Burkina Faso",
|
||||
"孟加拉国": "Bangladesh",
|
||||
"保加利亚": "Bulgaria",
|
||||
"巴林": "Bahrain",
|
||||
"巴哈马": "Bahamas",
|
||||
"波斯尼亚和黑塞哥维那": "Bosnia and Herz.",
|
||||
"白俄罗斯": "Belarus",
|
||||
"伯利兹": "Belize",
|
||||
"百慕大": "Bermuda",
|
||||
"玻利维亚": "Bolivia",
|
||||
"巴西": "Brazil",
|
||||
"巴巴多斯": "Barbados",
|
||||
"文莱": "Brunei",
|
||||
"不丹": "Bhutan",
|
||||
"博茨瓦纳": "Botswana",
|
||||
"中非": "Central African Rep.",
|
||||
"加拿大": "Canada",
|
||||
"瑞士": "Switzerland",
|
||||
"智利": "Chile",
|
||||
"中国": "China",
|
||||
"科特迪瓦": "Côte dIvoire",
|
||||
"喀麦隆": "Cameroon",
|
||||
"刚果民主共和国": "Dem. Rep. Congo",
|
||||
"刚果": "Congo",
|
||||
"哥伦比亚": "Colombia",
|
||||
"佛得角": "Cape Verde",
|
||||
"哥斯达黎加": "Costa Rica",
|
||||
"古巴": "Cuba",
|
||||
"北塞浦路斯": "N. Cyprus",
|
||||
"塞浦路斯": "Cyprus",
|
||||
"捷克": "Czech Rep.",
|
||||
"德国": "Germany",
|
||||
"吉布提": "Djibouti",
|
||||
"丹麦": "Denmark",
|
||||
"多米尼加": "Dominica",
|
||||
"阿尔及利亚": "Algeria",
|
||||
"厄瓜多尔": "Ecuador",
|
||||
"埃及": "Egypt",
|
||||
"厄立特里亚": "Eritrea",
|
||||
"西班牙": "Spain",
|
||||
"爱沙尼亚": "Estonia",
|
||||
"埃塞俄比亚": "Ethiopia",
|
||||
"芬兰": "Finland",
|
||||
"斐济": "Fiji",
|
||||
"法国": "France",
|
||||
"加蓬": "Gabon",
|
||||
"英国": "United Kingdom",
|
||||
"格鲁吉亚": "Georgia",
|
||||
"加纳": "Ghana",
|
||||
"几内亚": "Guinea",
|
||||
"冈比亚": "Gambia",
|
||||
"几内亚比绍": "Guinea-Bissau",
|
||||
"赤道几内亚": "Eq. Guinea",
|
||||
"希腊": "Greece",
|
||||
"格林纳达": "Grenada",
|
||||
"格陵兰": "Greenland",
|
||||
"危地马拉": "Guatemala",
|
||||
"关岛": "Guam",
|
||||
"圭亚那": "Guyana",
|
||||
"洪都拉斯": "Honduras",
|
||||
"克罗地亚": "Croatia",
|
||||
"海地": "Haiti",
|
||||
"匈牙利": "Hungary",
|
||||
"印度尼西亚": "Indonesia",
|
||||
"印度": "India",
|
||||
"英属印度洋领土": "Br. Indian Ocean Ter.",
|
||||
"爱尔兰": "Ireland",
|
||||
"伊朗": "Iran",
|
||||
"伊拉克": "Iraq",
|
||||
"冰岛": "Iceland",
|
||||
"以色列": "Israel",
|
||||
"意大利": "Italy",
|
||||
"牙买加": "Jamaica",
|
||||
"约旦": "Jordan",
|
||||
"日本": "Japan",
|
||||
"锡亚琴冰川": "Siachen Glacier",
|
||||
"哈萨克斯坦": "Kazakhstan",
|
||||
"肯尼亚": "Kenya",
|
||||
"吉尔吉斯坦": "Kyrgyzstan",
|
||||
"柬埔寨": "Cambodia",
|
||||
"韩国": "Korea",
|
||||
"科威特": "Kuwait",
|
||||
"老挝": "Lao PDR",
|
||||
"黎巴嫩": "Lebanon",
|
||||
"利比里亚": "Liberia",
|
||||
"利比亚": "Libya",
|
||||
"斯里兰卡": "Sri Lanka",
|
||||
"莱索托": "Lesotho",
|
||||
"立陶宛": "Lithuania",
|
||||
"卢森堡": "Luxembourg",
|
||||
"拉脱维亚": "Latvia",
|
||||
"摩尔多瓦": "Moldova",
|
||||
"马达加斯加": "Madagascar",
|
||||
"墨西哥": "Mexico",
|
||||
"马其顿": "Macedonia",
|
||||
"马里": "Mali",
|
||||
"马耳他": "Malta",
|
||||
"缅甸": "Myanmar",
|
||||
"黑山": "Montenegro",
|
||||
"蒙古": "Mongolia",
|
||||
"莫桑比克": "Mozambique",
|
||||
"毛里塔尼亚": "Mauritania",
|
||||
"毛里求斯": "Mauritius",
|
||||
"马拉维": "Malawi",
|
||||
"马来西亚": "Malaysia",
|
||||
"纳米比亚": "Namibia",
|
||||
"新喀里多尼亚": "New Caledonia",
|
||||
"尼日尔": "Niger",
|
||||
"尼日利亚": "Nigeria",
|
||||
"尼加拉瓜": "Nicaragua",
|
||||
"荷兰": "Netherlands",
|
||||
"挪威": "Norway",
|
||||
"尼泊尔": "Nepal",
|
||||
"新西兰": "New Zealand",
|
||||
"阿曼": "Oman",
|
||||
"巴基斯坦": "Pakistan",
|
||||
"巴拿马": "Panama",
|
||||
"秘鲁": "Peru",
|
||||
"菲律宾": "Philippines",
|
||||
"巴布亚新几内亚": "Papua New Guinea",
|
||||
"波兰": "Poland",
|
||||
"波多黎各": "Puerto Rico",
|
||||
"朝鲜": "Dem. Rep. Korea",
|
||||
"葡萄牙": "Portugal",
|
||||
"巴拉圭": "Paraguay",
|
||||
"巴勒斯坦": "Palestine",
|
||||
"卡塔尔": "Qatar",
|
||||
"罗马尼亚": "Romania",
|
||||
"俄罗斯": "Russia",
|
||||
"卢旺达": "Rwanda",
|
||||
"沙特阿拉伯": "Saudi Arabia",
|
||||
"苏丹": "Sudan",
|
||||
"南苏丹": "S. Sudan",
|
||||
"塞内加尔": "Senegal",
|
||||
"新加坡": "Singapore",
|
||||
"所罗门群岛": "Solomon Is.",
|
||||
"塞拉利昂": "Sierra Leone",
|
||||
"萨尔瓦多": "El Salvador",
|
||||
"苏里南": "Suriname",
|
||||
"斯洛伐克": "Slovakia",
|
||||
"斯洛文尼亚": "Slovenia",
|
||||
"瑞典": "Sweden",
|
||||
"斯威士兰": "Swaziland",
|
||||
"塞舌尔": "Seychelles",
|
||||
"叙利亚": "Syria",
|
||||
"乍得": "Chad",
|
||||
"多哥": "Togo",
|
||||
"泰国": "Thailand",
|
||||
"塔吉克斯坦": "Tajikistan",
|
||||
"土库曼斯坦": "Turkmenistan",
|
||||
"东帝汶": "Timor-Leste",
|
||||
"汤加": "Tonga",
|
||||
"特立尼达和多巴哥": "Trinidad and Tobago",
|
||||
"突尼斯": "Tunisia",
|
||||
"土耳其": "Turkey",
|
||||
"坦桑尼亚": "Tanzania",
|
||||
"乌干达": "Uganda",
|
||||
"乌克兰": "Ukraine",
|
||||
"乌拉圭": "Uruguay",
|
||||
"美国": "United States",
|
||||
"乌兹别克斯坦": "Uzbekistan",
|
||||
"委内瑞拉": "Venezuela",
|
||||
"越南": "Vietnam",
|
||||
"瓦努阿图": "Vanuatu",
|
||||
"也门": "Yemen",
|
||||
"南非": "South Africa",
|
||||
"赞比亚": "Zambia",
|
||||
"津巴布韦": "Zimbabwe",
|
||||
"奥兰群岛": "Aland",
|
||||
"美属萨摩亚": "American Samoa",
|
||||
"南极洲": "Fr. S. Antarctic Lands",
|
||||
"安提瓜和巴布达": "Antigua and Barb.",
|
||||
"科摩罗": "Comoros",
|
||||
"库拉索岛": "Curaçao",
|
||||
"开曼群岛": "Cayman Is.",
|
||||
"马尔维纳斯群岛(福克兰)": "Falkland Is.",
|
||||
"法罗群岛": "Faeroe Is.",
|
||||
"密克罗尼西亚": "Micronesia",
|
||||
"赫德岛和麦克唐纳群岛": "Heard I. and McDonald Is.",
|
||||
"曼岛": "Isle of Man",
|
||||
"泽西岛": "Jersey",
|
||||
"基里巴斯": "Kiribati",
|
||||
"圣卢西亚": "Saint Lucia",
|
||||
"北马里亚纳群岛": "N. Mariana Is.",
|
||||
"蒙特塞拉特": "Montserrat",
|
||||
"纽埃": "Niue",
|
||||
"帕劳": "Palau",
|
||||
"法属波利尼西亚": "Fr. Polynesia",
|
||||
"南乔治亚岛和南桑威奇群岛": "S. Geo. and S. Sandw. Is.",
|
||||
"圣赫勒拿": "Saint Helena",
|
||||
"圣皮埃尔和密克隆群岛": "St. Pierre and Miquelon",
|
||||
"圣多美和普林西比": "São Tomé and Principe",
|
||||
"特克斯和凯科斯群岛": "Turks and Caicos Is.",
|
||||
"圣文森特和格林纳丁斯": "St. Vin. and Gren.",
|
||||
"美属维尔京群岛": "U.S. Virgin Is.",
|
||||
"萨摩亚": "Samoa"
|
||||
}
|
||||
@@ -1,70 +1,76 @@
|
||||
import datetime
|
||||
import traceback
|
||||
|
||||
import pandas as pd
|
||||
import pymysql
|
||||
from sqlalchemy import create_engine
|
||||
import pandas as pd
|
||||
import datetime
|
||||
|
||||
|
||||
class utils:
|
||||
def __init__(self,db_name,table_name,user,password):
|
||||
self.db_name=db_name
|
||||
self.table_name=table_name
|
||||
self.user=user
|
||||
self.password=password
|
||||
self.data = self.querry()
|
||||
def __init__(self, db_name, user, password):
|
||||
self.db_name = db_name
|
||||
self.user = user
|
||||
self.password = password
|
||||
self.data = self.query("epidemic")
|
||||
|
||||
def get_conn(self):
|
||||
'''
|
||||
|
||||
:return:连接
|
||||
'''
|
||||
#创建连接
|
||||
conn=pymysql.connect(host="127.0.0.1",port=3306,user=self.user,password=self.password,
|
||||
db=self.db_name,charset="utf8")
|
||||
cursor=conn.cursor()
|
||||
return conn,cursor
|
||||
# 创建连接
|
||||
conn = pymysql.connect(host="127.0.0.1", port=3306, user=self.user, password=self.password,
|
||||
db=self.db_name, charset="utf8")
|
||||
cursor = conn.cursor()
|
||||
return conn, cursor
|
||||
|
||||
def close_conn(self,conn,cursor):
|
||||
def close_conn(self, conn, cursor):
|
||||
cursor.close()
|
||||
conn.close()
|
||||
|
||||
def querry(self):
|
||||
#使用pandas从数据库中读取疫情数据
|
||||
conn = create_engine('mysql://{}:{}@localhost:3306/{}?charset=utf8'.format(self.user,self.password,self.db_name))
|
||||
sql="SELECT * FROM {}".format(self.table_name)
|
||||
epidemic = pd.read_sql(sql, con=conn)
|
||||
return epidemic
|
||||
def query(self, table_name, use_sql=None):
|
||||
"""
|
||||
:param sql:
|
||||
:return:epidemic: DataFrame
|
||||
"""
|
||||
# 使用pandas从数据库中读取疫情数据
|
||||
try:
|
||||
conn = create_engine('mysql://{}:{}@localhost:3306/{}?charset=utf8'.format(self.user, self.password, self.db_name))
|
||||
sql = use_sql if use_sql else "select * from {}".format(table_name)
|
||||
epidemic = pd.read_sql(sql, con=conn)
|
||||
return epidemic
|
||||
except Exception as e:
|
||||
traceback.print_exc(e)
|
||||
return None
|
||||
|
||||
def get_c1_data(self):
|
||||
'''
|
||||
获取c1的四个数据:累计确诊、累计治愈、累计死亡、新增死亡
|
||||
:return:
|
||||
'''
|
||||
df=self.data
|
||||
#获取最新数据
|
||||
# 由于接口数据只能拿到前一天,因此我们的日期数据应该-1天
|
||||
t = datetime.datetime.now() + datetime.timedelta(days=-1)
|
||||
t= t.strftime('%Y-%m-%d')
|
||||
today = df[df.日期 == t]
|
||||
dignose=str(today.确诊.sum())
|
||||
heal=str(today.治愈.sum())
|
||||
dead=str(today.死亡.sum())
|
||||
add=str(today.新增死亡.sum())
|
||||
sql = "select date, confirm, nowConfirm,heal,dead from china_day order by date desc limit 1"
|
||||
df = self.query("china_day", sql)
|
||||
confirm = int(df["confirm"][0])
|
||||
heal = int(df["heal"][0])
|
||||
dead = int(df["dead"][0])
|
||||
now_confirm = int(df["nowConfirm"][0])
|
||||
|
||||
return [dignose,heal,dead,add]
|
||||
return [confirm, heal, dead, now_confirm]
|
||||
|
||||
def get_c2_data(self):
|
||||
'''
|
||||
获取中国各省的疫情数据
|
||||
:return:
|
||||
'''
|
||||
#将地区-确诊人数以键值对的形式保存
|
||||
dict={}
|
||||
# 将地区-确诊人数以键值对的形式保存
|
||||
dict = {}
|
||||
|
||||
# 获取最新数据
|
||||
# 由于接口数据只能拿到前一天,因此我们的日期数据应该-1天
|
||||
df=self.data
|
||||
t = datetime.datetime.now() + datetime.timedelta(days=-1)
|
||||
t = t.strftime('%Y-%m-%d')
|
||||
today = df[df.日期 == t]
|
||||
for p,v in zip(today.疫情地区,today.确诊):
|
||||
dict[p]=v
|
||||
# 从数据库中获取最近一次更新的数据
|
||||
sql = "select distinct 疫情地区,日期,确诊 from china_total_epidemic order by 日期 desc limit 34"
|
||||
df = self.query("china_total_epidemic", sql)
|
||||
for p, v in zip(df.疫情地区, df.确诊):
|
||||
dict[p] = v
|
||||
return dict
|
||||
|
||||
def get_l1_data(self):
|
||||
@@ -72,61 +78,38 @@ class utils:
|
||||
获取疫情期间每日累计数据
|
||||
:return:
|
||||
'''
|
||||
df=self.data
|
||||
days=df.groupby("日期").sum()
|
||||
return days
|
||||
sql = "select date, confirm, heal,dead from china_day order by date desc"
|
||||
df = self.query("", sql)
|
||||
return df
|
||||
|
||||
def get_l2_data(self):
|
||||
'''
|
||||
获取疫情期间每日新增数据
|
||||
:return:
|
||||
'''
|
||||
df=self.data
|
||||
days=df.groupby("日期").sum().diff().dropna()
|
||||
return days
|
||||
sql = "select date, confirm,heal,dead from china_day_add order by date desc"
|
||||
df = self.query("",sql)
|
||||
return df
|
||||
|
||||
def get_r1_data(self):
|
||||
'''
|
||||
获取除湖北地区确诊人数最多的省份
|
||||
:return:
|
||||
'''
|
||||
dict={}
|
||||
df=self.data
|
||||
t = datetime.datetime.now() + datetime.timedelta(days=-1)
|
||||
t = t.strftime('%Y-%m-%d')
|
||||
today = df[df.日期 == t]
|
||||
#按确诊人数排序
|
||||
today=today.sort_values(by='确诊',ascending=False)[:6]
|
||||
for key,value in zip(today.疫情地区,today.确诊):
|
||||
if key=='湖北':
|
||||
continue
|
||||
dict[key]=value
|
||||
|
||||
return dict
|
||||
sql = "select 疫情地区,确诊 from world_epidemic order by 日期 desc limit 5"
|
||||
df = self.query("",sql)
|
||||
return df
|
||||
|
||||
def get_r2_data(self):
|
||||
'''
|
||||
获取世界各国的疫情数据
|
||||
:return:
|
||||
'''
|
||||
#将地区-确诊人数以键值对的形式保存
|
||||
dict={}
|
||||
|
||||
# 获取最新数据
|
||||
# 由于接口数据只能拿到前一天,因此我们的日期数据应该-1天
|
||||
df=self.data
|
||||
t = datetime.datetime.now() + datetime.timedelta(days=-1)
|
||||
t = t.strftime('%Y-%m-%d')
|
||||
today = df[df.日期 == t]
|
||||
for p,v in zip(today.name,today.确诊):
|
||||
dict[p]=v
|
||||
return dict
|
||||
df = self.query("world_epidemic")
|
||||
return df[["name","疫情地区","确诊"]]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
u = utils("myspider", "root", "123456")
|
||||
|
||||
|
||||
|
||||
if __name__=="__main__":
|
||||
u=utils("myspider","world_epidemic","root","123456")
|
||||
print(list(u.get_r1_data().values()))
|
||||
|
||||
u.get_c1_data()
|
||||
|
||||
Reference in New Issue
Block a user