获取数据
import re
import requests
import json
import pandas as pd
import time
from pyecharts.charts import Map,Bar,Page,Pie
from pyecharts import options as opts
from pyecharts.components import Table
from pyecharts.options import ComponentTitleOpts
url = 'https://m.look.360.cn/events/feiyan?sv=&version=&market=&device=2&net=4&stype=&scene=&sub_scene=&refer_scene=&refer_subscene=&f=jsonp&location=true&sort=2&_=1597286912004&callback=jsonp2'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 QIHU 360SE',
'Referer': 'https://www.360kuai.com/mob/subject/400?sign=360_6aa05217&stab=0'}
response = requests.get(url=url, headers=headers)
data = json.loads(response.text[7:-2])['data'] # 国内,国外的是['country']
data[0]
{‘cities’: [{‘cityName’: ‘境外输入’,
‘cured’: 187,
‘currentConfirmed’: 4,
‘currentConfirmedFlag’: False,
‘diagnosed’: 191,
‘died’: 0,
‘diffDiagnosed’: 0,
‘modifyTime’: 1606492801000,
‘op’: [],
‘suspected’: 0},
{‘cityName’: ‘丰台区’,
‘cured’: 273,
‘currentConfirmed’: 0,
‘currentConfirmedFlag’: False,
‘diagnosed’: 273,
‘died’: 0,
‘diffDiagnosed’: 0,
‘modifyTime’: 1606492801000,
‘op’: [],
‘suspected’: 0},
…
{‘cityName’: ‘延庆区’,
‘cured’: 1,
‘currentConfirmed’: 0,
‘currentConfirmedFlag’: False,
‘diagnosed’: 1,
‘died’: 0,
‘diffDiagnosed’: 0,
‘modifyTime’: 1606492801000,
‘op’: [],
‘suspected’: 0}],
‘city’: ‘北京市’,
‘cityShortName’: ‘北京’,
‘cured’: 937,
‘currentConfirmed’: 4,
‘currentConfirmedFlag’: False,
‘data’: {‘cityName’: ‘’,
‘comment’: ‘北京卫健委未明确大部分治愈与死亡病例的分区归属,因此北京市下辖分区的现存确诊暂无法获取。’,
‘confirmedCount’: 442,
‘continents’: ‘’,
‘countryFullName’: ‘’,
‘countryShortCode’: ‘’,
‘countryType’: 1,
‘createTime’: 1584260897000,
‘curedCount’: 353,
‘currentConfirmedCount’: 81,
‘deadCount’: 8,
‘id’: 1085913,
‘locationId’: 110000,
‘modifyTime’: 1584260897000,
‘operator’: ‘wangjinyuan’,
‘provinceId’: ‘11’,
‘provinceName’: ‘北京市’,
‘provinceShortName’: ‘北京’,
‘sort’: 4,
‘suspectedCount’: 0,
‘tags’: ‘确诊 442 例,治愈 353 例,死亡 8 例,北京卫健委未明确大部分治愈与死亡病例的分区归属,因此北京市下辖分区的现存确诊暂无法获取。’,
‘tags_1’: '确诊 22 例 '},
‘diagnosed’: 950,
‘died’: 9,
‘diffDiagnosed’: 0,
‘isLocation’: 1,
‘suspected’: 0}
yiqing = pd.DataFrame(columns=['省份','城市', '累计确诊','当前确诊','治愈','死亡','截至时间'])
for i in range(len(data)):
d = data[i]['cities']
for j in range(len(d)): # 每个市
t = int(str(d[j]['modifyTime'])[:10]) # 取前10个数字
t = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(t))
yiqing = yiqing.append(pd.DataFrame([[data[i]['cityShortName'], d[j]['cityName'], d[j]['diagnosed'