importurllibimporturllib.requestimportjsonimportosimportprettytable as ptfrom pyecharts importMap, GeoclassSearchdata(object):def __init__(self,url):
self.url=url
self.china_list={}
self.china_data={}
self.province_list={}
self.province_data={}defget_data(self):try:
data=urllib.request.urlopen(self.url)
data=json.loads(data.read())
self.save(data)returndataexcept:print("请求数据出错!")defis_exist(self):for i inos.listdir(os.getcwd()):if i == "data.txt":return 1
return0defsave(self,data):if self.is_exist() ==0:
with open("data.txt",'w') as fp:
fp.write(str(data))defget_china(self,data):
data= data['data']
self.china_data['total'] = data['gntotal']
self.china_data['deathNum'] = data['deathtotal']
self.china_data['susNum'] = data['sustotal']
self.china_data['cureNum'] = data['curetotal']for i in data['list']:
dic={}
dic['total'] = i['value']
dic['deathNum'] = i['deathNum']
dic['susNum'] = i['susNum']
dic['cureNum'] = i['cureNum']
self.china_list[i['name']] =dicdefget_province(self,data):
data= data['data']for i in data['list']:if i['name'] == '湖北':
self.province_data['total'] = i['value']
self.province_data['deathNum'] = i['deathNum']
self.province_data['susNum'] = i['susNum']
self.province_data['cureNum'] = i['cureNum']for temp in i['city']:
dic={}
dic['total'] = temp['conNum']
dic['deathNum'] = temp['deathNum']
dic['susNum'] = temp['susNum']
dic['cureNum'] = temp['cureNum']
self.province_list[temp['name']] =dicreturn
defget_sheet1(self):
self.tb=pt.PrettyTable()
self.tb.field_names= ["省份", "总数", "死亡", "疑似", "治愈"]for k, v inself.china_list.items():
self.tb.add_row([k, v['total'], v['deathNum'], v['susNum'],v['cureNum']])
self.tb.add_row(['合计', self.china_data['total'],self.china_data['deathNum'], self.china_data['susNum'], self.china_data['cureNum']])print(self.tb)defget_sheet2(self):
self.tb=pt.PrettyTable()
self.tb.field_names= ["地级市", "总数", "死亡", "疑似", "治愈"]for k, v inself.province_list.items():
self.tb.add_row([k, v['total'], v['deathNum'], v['susNum'], v['cureNum']])
self.tb.add_row(['合计', self.province_data['total'], self.province_data['deathNum'],
self.province_data['susNum'], self.province_data['cureNum']])print(self.tb)defget_graph1(self):
provice=list(self.china_list.keys())
values=[]for k, v inself.china_list.items():
values.append(v['total'])#中国地图
map = Map("中国地图", '中国地图', width=1200, height=600)
map.add("", provice, values, visual_range=[0, 20000], maptype='china', is_visualmap=True,
visual_text_color='#000')
map.show_config()
map.render(path="地图.html")defget_graph2(self):
city=list(self.province_list.keys())
new_city=[]for str incity:if len(str) == 2:
str= str+"市"new_city.append(str)elif len(str) == 3:
str= "恩施土家族苗族自治州"new_city.append(str)else:
new_city.append(str)
values=[]for k, v inself.province_list.items():
values.append(v['total'])
map2= Map("湖北地图", '湖北', width=1200, height=600)
map2.add('', new_city, values, visual_range=[0,10000], maptype='湖北', is_visualmap=True, visual_text_color='#000')
map2.show_config()
map2.render(path="湖北地图.html")
Searchtool=Searchdata('http://43.250.238.179:9090/showData')
data=Searchtool.get_data()
Searchtool.get_province(data)
Searchtool.get_sheet2()
Searchtool.get_graph2()