Python获取疫情数据并生成csv文件 - Go语言中文社区

Python获取疫情数据并生成csv文件


今天没事干,在家里用Python语言实现了一下网上获取疫情,并生成csv文档。

现在全国的疫情数据网上一大堆,我们首先测试下数据地址看是否能正常显示。

可以显示最新的数据

好了,下面就用代码来整理并显示这些数据,并生成CSV文件。具体代码如下:

# -*- coding: utf-8 -*-

"""

Spyder Editor

 

This is a temporary script file.

"""

import requests

import json

import csv

def get_data():

    url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=jQuery341001657575837432268_1581070969707&_=1581070969708'

    headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36'}

    res = requests.get(url, headers=headers).text

    a = res.split('jQuery341001657575837432268_1581070969707(')[1].split(')')[0]

    c = json.loads(a)

    data = json.loads(c['data'])

    return data

def print_data_china():

    data = get_data()

    print('统计截至时间:'+str(data['lastUpdateTime']))

    print('全国确诊人数:'+str(data['chinaTotal']['confirm']))

    print('相较于昨天确诊人数:'+str(data['chinaAdd']['confirm']))

    print('全国疑似病例:'+str(data['chinaTotal']['suspect']))

    print('相较于昨天疑似人数:'+str(data['chinaAdd']['suspect']))

    print('全国治愈人数:'+str(data['chinaTotal']['heal']))

    print('相较于昨天治愈人数:'+str(data['chinaAdd']['heal']))

    print('全国死亡人数:'+str(data['chinaTotal']['dead']))

    print('相较于昨天死亡人数:'+str(data['chinaAdd']['dead']))

   

 

def print_data_path_china():

    data = get_data()['areaTree'][0]['children']

    path_data = []

    path_china = []

    path = str(input('请输入要查询的省份:'))

    for i in data:

        path_china.append(i['name'])

        path_data.append(i['children'])

    if path in path_china:

        num = path_china.index(path)

        data_path = path_data[num]

        print('{:^10}{:^10}{:^10}{:^10}{:^10}{:^10}{:^10}{:^10}{:^10}'.format('地区','累计确诊人数','相较于昨日确诊人数','累计疑似病例','相较于昨日疑似病例','累计治愈人数','相较于昨日治愈人数','累计死亡人数','相较于昨日死亡人数'))

        f = open('疫情统计.csv','w',encoding='gb2312')

        csv_writer = csv.writer(f)

        # 创建表头

        csv_writer.writerow(["地区","累计确诊人数","相较于昨日确诊人数","累计疑似病例","相较于昨日疑似病例","累计治愈人数","相较于昨日治愈人数","累计死亡人数","相较于昨日死亡人数"])

        for i in data_path:

            name = i['name']

            today = i['today']

            total = i['total']

            a = '{:^10}{:^15}{:^15}{:^15}{:^15}{:^15}{:^15}{:^15}{:^15}'

            print(a.format(name, str(total['confirm']), str(today['confirm']), str(total['confirm']), str(today['suspect']), str(total['heal']), str(today['heal']), str(total['dead']), str(today['dead'])))

            # 写入csv文件内容

            csv_writer.writerow([name,total['confirm'], today['confirm'], total['confirm'], today['suspect'], total['heal'], today['heal'], total['dead'], today['dead']])

            # 关闭文件

        f.close()

 

if __name__ == '__main__':

    get_data()

    print_data_china()

    print_data_path_china()

   

 

运行程序后在控制台打印结果如下

可以单独查询任意省市的数据并生成csv文档。

如拿内蒙古为例,最后生成的文档效果:

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/liujun0929/article/details/104384696
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 23:15:42
  • 阅读 ( 1404 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢