爬取世界疫情数据绘制疫情可视化地图
寻找目标网站
首先找到一个数据接口
比如,找到这个网站https://xw.qq.com/act/qgfeiyan?pgv_ref=3gqtb&ADTAG=3gqtb
然后鼠标右键打开检查
找到Network,并选中XHR
然后刷新页面
选择ranklist
通过preview可以看到这里有我们需要的数据信息
然后从headers选项中找到了这些数据的接口地址
https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist
并且可以看到数据类型是json类型
导入相关的库
首先需要导入库,比如requests,jsonpath
方法是找到pycharm下面的终端选项(Terminal),然后pip install XXX,比如pip install jsonpath
还有一个pyecharts的库,这个比较复杂一点,可以参考
https://www.cnblogs.com/cyx-b/p/12815433.html
获取数据
首先来个简单的,把json形式的数据获取下来
import json import requests import jsonpath # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) print(resp.text)
上图所示的输出结果正是json格式
但是,我们可以通过json.loads将其转换为字典类型
import json import requests import jsonpath # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) print(type(data)) print(data[\'data\'][0][\'name\'])
但是这样显然很麻烦,于是我们又用到了前面安装的jsonpath
使用方法为jsonpath.jsonpath(data,”$..name”)
data是我们的内容,$表示根节点下,
这个很好理解,仔细观察preview部分,可以看到标签其实是分层级的,而$..name表示根节点下的任意层级name键值的部分
import json import requests import jsonpath # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) name = jsonpath.jsonpath(data,"$..name") print(name)
这样就获得了受疫情影响较为严重的国家的名称
同理,我们可以如法炮制出确诊人数的列表,查看一下确诊人数使用的标签名,是confirm
我们只需要把国家名使用的name,改成confirm即可
import json import requests import jsonpath # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) name = jsonpath.jsonpath(data,"$..name") print(name) confirm = jsonpath.jsonpath(data,"$..confirm") print(confirm)
数据的可视化
这个部分与pyecharts的版本有关,不同版本的pyecharts对应的代码是不同的,
pyecharts为1.X版本
可以使用Python中的zip函数将两组数据组合到一起
zip()的用法可以参照
https://www.cnblogs.com/cyx-b/p/12818426.html
import json import requests import jsonpath # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) name = jsonpath.jsonpath(data,"$..name") print(name) confirm = jsonpath.jsonpath(data,"$..confirm") print(confirm) data_list = zip(name,confirm) print(list(data_list))
注意看第三行的输出
import json import requests import jsonpath from pyecharts import Map # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) name = jsonpath.jsonpath(data,"$..name") print(name) confirm = jsonpath.jsonpath(data,"$..confirm") print(confirm) data_list = zip(name,confirm) print(list(data_list)) # 4.可视化 matplotlib 和 pyecharts map = Map().add(series_name=\'世界疫情分布\', data_pair=data_list, maptype=\'world\', is_map_symbol_show=False ) map.render(\'世界疫情分布情况.html\')
但是这样显得乱糟糟的
对代码稍作修改,通过options使得国家名称不会同时出现,而是鼠标处显示
import json import requests import jsonpath from pyecharts.charts import Map,Geo from pyecharts import options as opts from pyecharts.globals import GeoType,RenderType # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) name = jsonpath.jsonpath(data,"$..name") # print(name) confirm = jsonpath.jsonpath(data,"$..confirm") # print(confirm) data_list = zip(name,confirm) # print(list(data_list)) # 4.可视化 matplotlib 和 pyecharts map = Map().add(series_name=\'世界疫情分布\', data_pair=data_list, maptype=\'world\', is_map_symbol_show=False ) map.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) map.render(\'世界疫情分布情况2.html\')
然后通过一个nameMap字典,建立国家名中英文映射,同时需要在Map.add()里面加入name_map=nameMap,就可以将疫情数据显示出来了
import json import requests import jsonpath from pyecharts.charts import Map,Geo from pyecharts import options as opts from pyecharts.globals import GeoType,RenderType # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) name = jsonpath.jsonpath(data,"$..name") # print(name) confirm = jsonpath.jsonpath(data,"$..confirm") # print(confirm) data_list = zip(name,confirm) # print(list(data_list)) # 4.可视化 matplotlib 和 pyecharts nameMap = { \'Singapore Rep.\':\'新加坡\', \'Dominican Rep.\':\'多米尼加\', \'Palestine\':\'巴勒斯坦\', \'Bahamas\':\'巴哈马\', \'Timor-Leste\':\'东帝汶\', \'Afghanistan\':\'阿富汗\', \'Guinea-Bissau\':\'几内亚比绍\', "Côte d\'Ivoire":\'科特迪瓦\', \'Siachen Glacier\':\'锡亚琴冰川\', "Br. Indian Ocean Ter.":\'英属印度洋领土\', \'Angola\':\'安哥拉\', \'Albania\':\'阿尔巴尼亚\', \'United Arab Emirates\':\'阿联酋\', \'Argentina\':\'阿根廷\', \'Armenia\':\'亚美尼亚\', \'French Southern and Antarctic Lands\':\'法属南半球和南极领地\', \'Australia\':\'澳大利亚\', \'Austria\':\'奥地利\', \'Azerbaijan\':\'阿塞拜疆\', \'Burundi\':\'布隆迪\', \'Belgium\':\'比利时\', \'Benin\':\'贝宁\', \'Burkina Faso\':\'布基纳法索\', \'Bangladesh\':\'孟加拉国\', \'Bulgaria\':\'保加利亚\', \'The Bahamas\':\'巴哈马\', \'Bosnia and Herz.\':\'波斯尼亚和黑塞哥维那\', \'Belarus\':\'白俄罗斯\', \'Belize\':\'伯利兹\', \'Bermuda\':\'百慕大\', \'Bolivia\':\'玻利维亚\', \'Brazil\':\'巴西\', \'Brunei\':\'文莱\', \'Bhutan\':\'不丹\', \'Botswana\':\'博茨瓦纳\', \'Central African Rep.\':\'中非\', \'Canada\':\'加拿大\', \'Switzerland\':\'瑞士\', \'Chile\':\'智利\', \'China\':\'中国\', \'Ivory Coast\':\'象牙海岸\', \'Cameroon\':\'喀麦隆\', \'Dem. Rep. Congo\':\'刚果民主共和国\', \'Congo\':\'刚果\', \'Colombia\':\'哥伦比亚\', \'Costa Rica\':\'哥斯达黎加\', \'Cuba\':\'古巴\', \'N. Cyprus\':\'北塞浦路斯\', \'Cyprus\':\'塞浦路斯\', \'Czech Rep.\':\'捷克\', \'Germany\':\'德国\', \'Djibouti\':\'吉布提\', \'Denmark\':\'丹麦\', \'Algeria\':\'阿尔及利亚\', \'Ecuador\':\'厄瓜多尔\', \'Egypt\':\'埃及\', \'Eritrea\':\'厄立特里亚\', \'Spain\':\'西班牙\', \'Estonia\':\'爱沙尼亚\', \'Ethiopia\':\'埃塞俄比亚\', \'Finland\':\'芬兰\', \'Fiji\':\'斐\', \'Falkland Islands\':\'福克兰群岛\', \'France\':\'法国\', \'Gabon\':\'加蓬\', \'United Kingdom\':\'英国\', \'Georgia\':\'格鲁吉亚\', \'Ghana\':\'加纳\', \'Guinea\':\'几内亚\', \'Gambia\':\'冈比亚\', \'Guinea Bissau\':\'几内亚比绍\', \'Eq. Guinea\':\'赤道几内亚\', \'Greece\':\'希腊\', \'Greenland\':\'格陵兰\', \'Guatemala\':\'危地马拉\', \'French Guiana\':\'法属圭亚那\', \'Guyana\':\'圭亚那\', \'Honduras\':\'洪都拉斯\', \'Croatia\':\'克罗地亚\', \'Haiti\':\'海地\', \'Hungary\':\'匈牙利\', \'Indonesia\':\'印度尼西亚\', \'India\':\'印度\', \'Ireland\':\'爱尔兰\', \'Iran\':\'伊朗\', \'Iraq\':\'伊拉克\', \'Iceland\':\'冰岛\', \'Israel\':\'以色列\', \'Italy\':\'意大利\', \'Jamaica\':\'牙买加\', \'Jordan\':\'约旦\', \'Japan\':\'日本\', \'Japan\':\'日本本土\', \'Kazakhstan\':\'哈萨克斯坦\', \'Kenya\':\'肯尼亚\', \'Kyrgyzstan\':\'吉尔吉斯斯坦\', \'Cambodia\':\'柬埔寨\', \'Korea\':\'韩国\', \'Kosovo\':\'科索沃\', \'Kuwait\':\'科威特\', \'Lao PDR\':\'老挝\', \'Lebanon\':\'黎巴嫩\', \'Liberia\':\'利比里亚\', \'Libya\':\'利比亚\', \'Sri Lanka\':\'斯里兰卡\', \'Lesotho\':\'莱索托\', \'Lithuania\':\'立陶宛\', \'Luxembourg\':\'卢森堡\', \'Latvia\':\'拉脱维亚\', \'Morocco\':\'摩洛哥\', \'Moldova\':\'摩尔多瓦\', \'Madagascar\':\'马达加斯加\', \'Mexico\':\'墨西哥\', \'Macedonia\':\'马其顿\', \'Mali\':\'马里\', \'Myanmar\':\'缅甸\', \'Montenegro\':\'黑山\', \'Mongolia\':\'蒙古\', \'Mozambique\':\'莫桑比克\', \'Mauritania\':\'毛里塔尼亚\', \'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\':\'巴拉圭\', \'Qatar\':\'卡塔尔\', \'Romania\':\'罗马尼亚\', \'Russia\':\'俄罗斯\', \'Rwanda\':\'卢旺达\', \'W. Sahara\':\'西撒哈拉\', \'Saudi Arabia\':\'沙特阿拉伯\', \'Sudan\':\'苏丹\', \'S. Sudan\':\'南苏丹\', \'Senegal\':\'塞内加尔\', \'Solomon Is.\':\'所罗门群岛\', \'Sierra Leone\':\'塞拉利昂\', \'El Salvador\':\'萨尔瓦多\', \'Somaliland\':\'索马里兰\', \'Somalia\':\'索马里\', \'Serbia\':\'塞尔维亚\', \'Suriname\':\'苏里南\', \'Slovakia\':\'斯洛伐克\', \'Slovenia\':\'斯洛文尼亚\', \'Sweden\':\'瑞典\', \'Swaziland\':\'斯威士兰\', \'Syria\':\'叙利亚\', \'Chad\':\'乍得\', \'Togo\':\'多哥\', \'Thailand\':\'泰国\', \'Tajikistan\':\'塔吉克斯坦\', \'Turkmenistan\':\'土库曼斯坦\', \'East Timor\':\'东帝汶\', \'Trinidad and Tobago\':\'特里尼达和多巴哥\', \'Tunisia\':\'突尼斯\', \'Turkey\':\'土耳其\', \'Tanzania\':\'坦桑尼亚\', \'Uganda\':\'乌干达\', \'Ukraine\':\'乌克兰\', \'Uruguay\':\'乌拉圭\', \'United States\':\'美国\', \'Uzbekistan\':\'乌兹别克斯坦\', \'Venezuela\':\'委内瑞拉\', \'Vietnam\':\'越南\', \'Vanuatu\':\'瓦努阿图\', \'West Bank\':\'西岸\', \'Yemen\':\'也门\', \'South Africa\':\'南非\', \'Zambia\':\'赞比亚\', \'Zimbabwe\':\'津巴布韦\' } map = Map().add(series_name=\'世界疫情分布\', data_pair=data_list, maptype=\'world\', name_map=nameMap, is_map_symbol_show=False ) map.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) map.render(\'世界疫情分布情况3.html\')
pyecharts为0.5.10版本
import json import requests import jsonpath from pyecharts import Map # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) name = jsonpath.jsonpath(data,"$..name") print(name) confirm = jsonpath.jsonpath(data,"$..confirm") print(confirm) map = Map("世界疫情分布",width=1200,height=600) map.add("COVID19",name,confirm,maptype=\'world\',is_map_symbol_show=False) map.render(\'世界疫情分布情况.html\')
运行成功后,工程文件夹中会出现html文件
可以右键点击,然后选择Show in Explorer
打开后效果如下:
但是不难发现,鼠标移动到相应位置的时候出现的是英文名称,而且没有确诊人数的信息。
所以首先要做一个国家名称的中英文映射
引入一个字典,如下:
nameMap = { \'Singapore Rep.\':\'新加坡\', \'Dominican Rep.\':\'多米尼加\', \'Palestine\':\'巴勒斯坦\', \'Bahamas\':\'巴哈马\', \'Timor-Leste\':\'东帝汶\', \'Afghanistan\':\'阿富汗\', \'Guinea-Bissau\':\'几内亚比绍\', "Côte d\'Ivoire":\'科特迪瓦\', \'Siachen Glacier\':\'锡亚琴冰川\', "Br. Indian Ocean Ter.":\'英属印度洋领土\', \'Angola\':\'安哥拉\', \'Albania\':\'阿尔巴尼亚\', \'United Arab Emirates\':\'阿联酋\', \'Argentina\':\'阿根廷\', \'Armenia\':\'亚美尼亚\', \'French Southern and Antarctic Lands\':\'法属南半球和南极领地\', \'Australia\':\'澳大利亚\', \'Austria\':\'奥地利\', \'Azerbaijan\':\'阿塞拜疆\', \'Burundi\':\'布隆迪\', \'Belgium\':\'比利时\', \'Benin\':\'贝宁\', \'Burkina Faso\':\'布基纳法索\', \'Bangladesh\':\'孟加拉国\', \'Bulgaria\':\'保加利亚\', \'The Bahamas\':\'巴哈马\', \'Bosnia and Herz.\':\'波斯尼亚和黑塞哥维那\', \'Belarus\':\'白俄罗斯\', \'Belize\':\'伯利兹\', \'Bermuda\':\'百慕大\', \'Bolivia\':\'玻利维亚\', \'Brazil\':\'巴西\', \'Brunei\':\'文莱\', \'Bhutan\':\'不丹\', \'Botswana\':\'博茨瓦纳\', \'Central African Rep.\':\'中非\', \'Canada\':\'加拿大\', \'Switzerland\':\'瑞士\', \'Chile\':\'智利\', \'China\':\'中国\', \'Ivory Coast\':\'象牙海岸\', \'Cameroon\':\'喀麦隆\', \'Dem. Rep. Congo\':\'刚果民主共和国\', \'Congo\':\'刚果\', \'Colombia\':\'哥伦比亚\', \'Costa Rica\':\'哥斯达黎加\', \'Cuba\':\'古巴\', \'N. Cyprus\':\'北塞浦路斯\', \'Cyprus\':\'塞浦路斯\', \'Czech Rep.\':\'捷克\', \'Germany\':\'德国\', \'Djibouti\':\'吉布提\', \'Denmark\':\'丹麦\', \'Algeria\':\'阿尔及利亚\', \'Ecuador\':\'厄瓜多尔\', \'Egypt\':\'埃及\', \'Eritrea\':\'厄立特里亚\', \'Spain\':\'西班牙\', \'Estonia\':\'爱沙尼亚\', \'Ethiopia\':\'埃塞俄比亚\', \'Finland\':\'芬兰\', \'Fiji\':\'斐\', \'Falkland Islands\':\'福克兰群岛\', \'France\':\'法国\', \'Gabon\':\'加蓬\', \'United Kingdom\':\'英国\', \'Georgia\':\'格鲁吉亚\', \'Ghana\':\'加纳\', \'Guinea\':\'几内亚\', \'Gambia\':\'冈比亚\', \'Guinea Bissau\':\'几内亚比绍\', \'Eq. Guinea\':\'赤道几内亚\', \'Greece\':\'希腊\', \'Greenland\':\'格陵兰\', \'Guatemala\':\'危地马拉\', \'French Guiana\':\'法属圭亚那\', \'Guyana\':\'圭亚那\', \'Honduras\':\'洪都拉斯\', \'Croatia\':\'克罗地亚\', \'Haiti\':\'海地\', \'Hungary\':\'匈牙利\', \'Indonesia\':\'印度尼西亚\', \'India\':\'印度\', \'Ireland\':\'爱尔兰\', \'Iran\':\'伊朗\', \'Iraq\':\'伊拉克\', \'Iceland\':\'冰岛\', \'Israel\':\'以色列\', \'Italy\':\'意大利\', \'Jamaica\':\'牙买加\', \'Jordan\':\'约旦\', \'Japan\':\'日本\', \'Japan\':\'日本本土\', \'Kazakhstan\':\'哈萨克斯坦\', \'Kenya\':\'肯尼亚\', \'Kyrgyzstan\':\'吉尔吉斯斯坦\', \'Cambodia\':\'柬埔寨\', \'Korea\':\'韩国\', \'Kosovo\':\'科索沃\', \'Kuwait\':\'科威特\', \'Lao PDR\':\'老挝\', \'Lebanon\':\'黎巴嫩\', \'Liberia\':\'利比里亚\', \'Libya\':\'利比亚\', \'Sri Lanka\':\'斯里兰卡\', \'Lesotho\':\'莱索托\', \'Lithuania\':\'立陶宛\', \'Luxembourg\':\'卢森堡\', \'Latvia\':\'拉脱维亚\', \'Morocco\':\'摩洛哥\', \'Moldova\':\'摩尔多瓦\', \'Madagascar\':\'马达加斯加\', \'Mexico\':\'墨西哥\', \'Macedonia\':\'马其顿\', \'Mali\':\'马里\', \'Myanmar\':\'缅甸\', \'Montenegro\':\'黑山\', \'Mongolia\':\'蒙古\', \'Mozambique\':\'莫桑比克\', \'Mauritania\':\'毛里塔尼亚\', \'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\':\'巴拉圭\', \'Qatar\':\'卡塔尔\', \'Romania\':\'罗马尼亚\', \'Russia\':\'俄罗斯\', \'Rwanda\':\'卢旺达\', \'W. Sahara\':\'西撒哈拉\', \'Saudi Arabia\':\'沙特阿拉伯\', \'Sudan\':\'苏丹\', \'S. Sudan\':\'南苏丹\', \'Senegal\':\'塞内加尔\', \'Solomon Is.\':\'所罗门群岛\', \'Sierra Leone\':\'塞拉利昂\', \'El Salvador\':\'萨尔瓦多\', \'Somaliland\':\'索马里兰\', \'Somalia\':\'索马里\', \'Serbia\':\'塞尔维亚\', \'Suriname\':\'苏里南\', \'Slovakia\':\'斯洛伐克\', \'Slovenia\':\'斯洛文尼亚\', \'Sweden\':\'瑞典\', \'Swaziland\':\'斯威士兰\', \'Syria\':\'叙利亚\', \'Chad\':\'乍得\', \'Togo\':\'多哥\', \'Thailand\':\'泰国\', \'Tajikistan\':\'塔吉克斯坦\', \'Turkmenistan\':\'土库曼斯坦\', \'East Timor\':\'东帝汶\', \'Trinidad and Tobago\':\'特里尼达和多巴哥\', \'Tunisia\':\'突尼斯\', \'Turkey\':\'土耳其\', \'Tanzania\':\'坦桑尼亚\', \'Uganda\':\'乌干达\', \'Ukraine\':\'乌克兰\', \'Uruguay\':\'乌拉圭\', \'United States\':\'美国\', \'Uzbekistan\':\'乌兹别克斯坦\', \'Venezuela\':\'委内瑞拉\', \'Vietnam\':\'越南\', \'Vanuatu\':\'瓦努阿图\', \'West Bank\':\'西岸\', \'Yemen\':\'也门\', \'South Africa\':\'南非\', \'Zambia\':\'赞比亚\', \'Zimbabwe\':\'津巴布韦\' }
然后需要在map.add里面加入name_map=nameMap,如下:
import json import requests import jsonpath from pyecharts import Map # 1.目标网站 url=\'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist\' # 2.请求资源 resp=requests.get(url) # 3.提取数据 # 类型转换 json-->dict data=json.loads(resp.text) name = jsonpath.jsonpath(data,"$..name") print(name) confirm = jsonpath.jsonpath(data,"$..confirm") print(confirm) nameMap = { \'Singapore Rep.\':\'新加坡\', \'Dominican Rep.\':\'多米尼加\', \'Palestine\':\'巴勒斯坦\', \'Bahamas\':\'巴哈马\', \'Timor-Leste\':\'东帝汶\', \'Afghanistan\':\'阿富汗\', \'Guinea-Bissau\':\'几内亚比绍\', "Côte d\'Ivoire":\'科特迪瓦\', \'Siachen Glacier\':\'锡亚琴冰川\', "Br. Indian Ocean Ter.":\'英属印度洋领土\', \'Angola\':\'安哥拉\', \'Albania\':\'阿尔巴尼亚\', \'United Arab Emirates\':\'阿联酋\', \'Argentina\':\'阿根廷\', \'Armenia\':\'亚美尼亚\', \'French Southern and Antarctic Lands\':\'法属南半球和南极领地\', \'Australia\':\'澳大利亚\', \'Austria\':\'奥地利\', \'Azerbaijan\':\'阿塞拜疆\', \'Burundi\':\'布隆迪\', \'Belgium\':\'比利时\', \'Benin\':\'贝宁\', \'Burkina Faso\':\'布基纳法索\', \'Bangladesh\':\'孟加拉国\', \'Bulgaria\':\'保加利亚\', \'The Bahamas\':\'巴哈马\', \'Bosnia and Herz.\':\'波斯尼亚和黑塞哥维那\', \'Belarus\':\'白俄罗斯\', \'Belize\':\'伯利兹\', \'Bermuda\':\'百慕大\', \'Bolivia\':\'玻利维亚\', \'Brazil\':\'巴西\', \'Brunei\':\'文莱\', \'Bhutan\':\'不丹\', \'Botswana\':\'博茨瓦纳\', \'Central African Rep.\':\'中非\', \'Canada\':\'加拿大\', \'Switzerland\':\'瑞士\', \'Chile\':\'智利\', \'China\':\'中国\', \'Ivory Coast\':\'象牙海岸\', \'Cameroon\':\'喀麦隆\', \'Dem. Rep. Congo\':\'刚果民主共和国\', \'Congo\':\'刚果\', \'Colombia\':\'哥伦比亚\', \'Costa Rica\':\'哥斯达黎加\', \'Cuba\':\'古巴\', \'N. Cyprus\':\'北塞浦路斯\', \'Cyprus\':\'塞浦路斯\', \'Czech Rep.\':\'捷克\', \'Germany\':\'德国\', \'Djibouti\':\'吉布提\', \'Denmark\':\'丹麦\', \'Algeria\':\'阿尔及利亚\', \'Ecuador\':\'厄瓜多尔\', \'Egypt\':\'埃及\', \'Eritrea\':\'厄立特里亚\', \'Spain\':\'西班牙\', \'Estonia\':\'爱沙尼亚\', \'Ethiopia\':\'埃塞俄比亚\', \'Finland\':\'芬兰\', \'Fiji\':\'斐\', \'Falkland Islands\':\'福克兰群岛\', \'France\':\'法国\', \'Gabon\':\'加蓬\', \'United Kingdom\':\'英国\', \'Georgia\':\'格鲁吉亚\', \'Ghana\':\'加纳\', \'Guinea\':\'几内亚\', \'Gambia\':\'冈比亚\', \'Guinea Bissau\':\'几内亚比绍\', \'Eq. Guinea\':\'赤道几内亚\', \'Greece\':\'希腊\', \'Greenland\':\'格陵兰\', \'Guatemala\':\'危地马拉\', \'French Guiana\':\'法属圭亚那\', \'Guyana\':\'圭亚那\', \'Honduras\':\'洪都拉斯\', \'Croatia\':\'克罗地亚\', \'Haiti\':\'海地\', \'Hungary\':\'匈牙利\', \'Indonesia\':\'印度尼西亚\', \'India\':\'印度\', \'Ireland\':\'爱尔兰\', \'Iran\':\'伊朗\', \'Iraq\':\'伊拉克\', \'Iceland\':\'冰岛\', \'Israel\':\'以色列\', \'Italy\':\'意大利\', \'Jamaica\':\'牙买加\', \'Jordan\':\'约旦\', \'Japan\':\'日本\', \'Japan\':\'日本本土\', \'Kazakhstan\':\'哈萨克斯坦\', \'Kenya\':\'肯尼亚\', \'Kyrgyzstan\':\'吉尔吉斯斯坦\', \'Cambodia\':\'柬埔寨\', \'Korea\':\'韩国\', \'Kosovo\':\'科索沃\', \'Kuwait\':\'科威特\', \'Lao PDR\':\'老挝\', \'Lebanon\':\'黎巴嫩\', \'Liberia\':\'利比里亚\', \'Libya\':\'利比亚\', \'Sri Lanka\':\'斯里兰卡\', \'Lesotho\':\'莱索托\', \'Lithuania\':\'立陶宛\', \'Luxembourg\':\'卢森堡\', \'Latvia\':\'拉脱维亚\', \'Morocco\':\'摩洛哥\', \'Moldova\':\'摩尔多瓦\', \'Madagascar\':\'马达加斯加\', \'Mexico\':\'墨西哥\', \'Macedonia\':\'马其顿\', \'Mali\':\'马里\', \'Myanmar\':\'缅甸\', \'Montenegro\':\'黑山\', \'Mongolia\':\'蒙古\', \'Mozambique\':\'莫桑比克\', \'Mauritania\':\'毛里塔尼亚\', \'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\':\'巴拉圭\', \'Qatar\':\'卡塔尔\', \'Romania\':\'罗马尼亚\', \'Russia\':\'俄罗斯\', \'Rwanda\':\'卢旺达\', \'W. Sahara\':\'西撒哈拉\', \'Saudi Arabia\':\'沙特阿拉伯\', \'Sudan\':\'苏丹\', \'S. Sudan\':\'南苏丹\', \'Senegal\':\'塞内加尔\', \'Solomon Is.\':\'所罗门群岛\', \'Sierra Leone\':\'塞拉利昂\', \'El Salvador\':\'萨尔瓦多\', \'Somaliland\':\'索马里兰\', \'Somalia\':\'索马里\', \'Serbia\':\'塞尔维亚\', \'Suriname\':\'苏里南\', \'Slovakia\':\'斯洛伐克\', \'Slovenia\':\'斯洛文尼亚\', \'Sweden\':\'瑞典\', \'Swaziland\':\'斯威士兰\', \'Syria\':\'叙利亚\', \'Chad\':\'乍得\', \'Togo\':\'多哥\', \'Thailand\':\'泰国\', \'Tajikistan\':\'塔吉克斯坦\', \'Turkmenistan\':\'土库曼斯坦\', \'East Timor\':\'东帝汶\', \'Trinidad and Tobago\':\'特里尼达和多巴哥\', \'Tunisia\':\'突尼斯\', \'Turkey\':\'土耳其\', \'Tanzania\':\'坦桑尼亚\', \'Uganda\':\'乌干达\', \'Ukraine\':\'乌克兰\', \'Uruguay\':\'乌拉圭\', \'United States\':\'美国\', \'Uzbekistan\':\'乌兹别克斯坦\', \'Venezuela\':\'委内瑞拉\', \'Vietnam\':\'越南\', \'Vanuatu\':\'瓦努阿图\', \'West Bank\':\'西岸\', \'Yemen\':\'也门\', \'South Africa\':\'南非\', \'Zambia\':\'赞比亚\', \'Zimbabwe\':\'津巴布韦\' } map = Map("世界疫情分布",width=1200,height=600) map.add("COVID19",name,confirm,maptype=\'world\',name_map=nameMap,is_map_symbol_show=False) map.render(\'世界疫情分布情况.html\')
运行成功后,刷新html页面