📜  在Python使用 covin 跟踪 Covid-19 疫苗槽(1)

📅  最后修改于: 2023-12-03 15:23:27.258000             🧑  作者: Mango

在Python使用 Covin 跟踪 Covid-19 疫苗槽

Covin 是一个由Indian Government开发的接口,它提供了关于Covid-19疫苗的可用性的实时数据。在本文中,我们将介绍如何使用Covin API在Python中跟踪疫苗槽的可用性。

步骤 1: 获取 API Key

在使用 Covin API 之前,我们需要获取API Key。以下是获取API Key的步骤:

1.访问 https://dashboard.cowin.gov.in/ 并登录到您的帐户。 2.转到“API 超级管理员’’部分并单击“生成新的 API 密钥”按钮。 3. API 密钥将被发送到您的邮箱中。

步骤 2: 安装请求模块

我们需要安装 Python 中的 requests 模块。您可以在命令行中使用以下命令安装它:

pip install requests
步骤 3: 编写代码

下面是一个示例 Python 脚本,用于检查 Covid-19 疫苗槽的可用性:

import requests
import datetime


# 手动指定日期
date = datetime.datetime.today().strftime('%d-%m-%Y')

url = 'https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/calendarByDistrict'

district_id = 'xxx' # 替换成您的地区ID
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36", 'Accept-Language': 'hi_IN'}
CURRENT_DATE = datetime.datetime.today()


def fetch_data_from_cowin(district_id, date):
    query_params = "?district_id={}&date={}".format(district_id, date)
    final_url = url + query_params
    response = requests.get(final_url, headers=headers)
    return response.json()


def is_available(session):
    return session['available_capacity'] > 0


def print_center(center, sessions):
    name = center['name']
    pincode = center['pincode']
    fee_type = center['fee_type']
    print('\n\nName: ' + name)
    print('Pincode: ' + str(pincode))
    print('Fee Type: ' + fee_type)
    for session in sessions:
        if is_available(session) and session['min_age_limit'] < 45:
            print(session['date'])
            print('   Available Capacity: ' + str(session['available_capacity']))
            print('   Vaccine: ' + session['vaccine'])


data = fetch_data_from_cowin(district_id, date)
for center in data['centers']:
    sessions = center['sessions']
    if is_available(sessions):
        print_center(center, sessions)

在代码中,我们首先使用 requests 模块从 Covin API 中获取数据然后判断疫苗槽是否可用,然后依次打印该中心的名称,邮政编码,收费类型以及可用的疫苗槽数。

请注意,你需要将 district_id 替换为您所在地区的 ID,您可以在 Covin API 官方网站上找到相应的 ID。

另外,我们还可以手动指定日期,也就是将 date 变量指定为您要检查可用性的日期。

结果

执行脚本后,您将看到类似于以下屏幕截图的输出:

Name: ABC Hospital
Pincode: 123456
Fee Type: Paid
12-05-2021
   Available Capacity: 5
   Vaccine: COVISHIELD

Name: XYZ Clinic
Pincode: 654321
Fee Type: Free
12-05-2021
   Available Capacity: 20
   Vaccine: COVAXIN

以上是通过Covin跟踪 COVID-19疫苗槽的简单Python脚本。您可以使用此方法定期检查可用性,提供更安全的健康解决方案。

转载自 DataCamp中文社区