COVID19-Data

Build Status GitHub issues PyPI - Python Version GitHub release (latest by date) PyPI GitHub release (latest by date including pre-releases)

Overview

covid19-data is a powerful and easy to use Python client for getting COVID-19 data (see sources below for more information on how data is obtained)

Installing

covid19-data can be installed with pip:

$ pip install covid19-data

Alternatively, you can grab the latest source code from GitHub:

$ git clone git://github.com/binarynightowl/covid19_python
$ python setup.py install

Documentation

Usage

There are multiple ways of getting data with covid19-data

  1. Object/parameter style retrieval
    • Gets the data by calling the class of the desired information source and the statistics for any location. As of now, only John Hopkins University (JHU) is supported but in a future release, multiple sources will be supported.
      from covid19_data import JHU
          
      # Format: <Data Source>.<Location>.<Statistic>
      # For example to get data from John Hopkins University, review the following example:
      # JHU.China.deaths
              
      print("The number of COVID-19 recoveries in the US: " + str(JHU.US.recovered))
      print("The number of confirmed COVID-19 cases in Texas: " + str(JHU.Texas.confirmed))   # JHU.TX.confirmed also works
      print("The number of COVID-19 deaths in California: " + str(JHU.CA.deaths))     # JHU.California also works
      print("The number of worldwide COVID-19 deaths: " + str(JHU.Total.deaths))
      print("The number of COVID-19 deaths in China: " + str(JHU.China.deaths))
      print("The number of COVID-19 deaths in UK: " + str(JHU.UnitedKingdom.deaths))
      

      Sample Output:

        The number of COVID-19 recoveries in the US : 685164
        The number of confirmed COVID-19 cases in Texas : 150851
        The number of COVID-19 deaths in California : 5935
        The number of worldwide COVID-19 deaths : 502947
        The number of COVID-19 deaths in China : 4641
        The number of COVID-19 recoveries in the United Kingdom : 1364
      
  2. As an object with attributes of COVID data
    • Get the data by name (note: spacing and capitalization do not matter, EX: total = covid19_data.dataByName("New York"), total = covid19_data.dataByName("newyork"), and total = covid19_data.dataByName("NEW YORK") are all interchangable)
        import covid19_data
          
        # example of how to get data by name
        # .dataByName([string of item to find: any state, country, or total amount (spacing and capitalization do not matter)])
        # object has three useful attributes: .deaths, .cases (.confirmed also works), and .recovered
              
        total = covid19_data.dataByName("Total")    # create an object for our total data
        china = covid19_data.dataByName("China")
        US = covid19_data.dataByName("US")
        new_york = covid19_data.dataByName("NewYork")
        print(total.deaths, china.recovered, US.cases)
      

      Sample Output:

        22184 74181 69246
      
    • Get the data by abbreviation (note: spacing and capitalization do not matter, EX: total = covid19_data.dataByName("New York"), total = covid19_data.dataByName("newyork"), and total = covid19_data.dataByName("NEW YORK") are all interchangable)
        import covid19_data        
              
        # example of how to get data by abbreviated name
        # .dataByNameShort([two letter string of item you want to find, can be any state])
        # object has three useful attributes: .deaths, .cases (.confirmed also works), and .recovered
              
        texas = covid19_data.dataByNameShort("TX")    # create an object for our total data
        california = covid19_data.dataByNameShort("CA")
        new_york = covid19_data.dataByNameShort("NY")
        print(texas.cases, california.deaths, new_york.cases)
      

      Sample Output:

        1353 67 33033
      
  3. As a JSON document
    • Get the json by name (note: spacing and capitalization do not matter, EX: total = covid19_data.dataByName("New York"), total = covid19_data.dataByName("newyork"), and total = covid19_data.dataByName("NEW YORK") are all interchangable)
        import covid19_data
              
        # example of how to get json by name
        # .jsonByName([string of item you want to find, can be any state, country, or total amount (spacing and capitalization do not matter)])
        # object has three useful attributes: .deaths, .cases (.confirmed also works), and .recovered
              
        total = covid19_data.jsonByName("Total")    # create an object for our total data
        china = covid19_data.jsonByName("China")
        US = covid19_data.jsonByName("US")
        new_york = covid19_data.jsonByName("NewYork")
        print(total, china, US, new_york)
      

      Sample Output::

        {'Confirmed': 492603, 'Deaths': 22184, 'Recovered': 119918}
        {'Confirmed': 81782, 'Deaths': 3291, 'Recovered': 74181, 'Active': 4310}
        {'Confirmed': 69246, 'Deaths': 1046, 'Recovered': 619, 'Active': 0}
        {'Confirmed': 33033, 'Deaths': 366, 'Recovered': 0, 'Active': 0}
      
    • Get the json by abbreviation (note: spacing and capitalization do not matter, EX: total = covid19_data.dataByName("New York"), total = covid19_data.dataByName("newyork"), and total = covid19_data.dataByName("NEW YORK") are all interchangable)
        import covid19_data
              
        # example of how to get json by abbreviated name
        # .jsonByNameShort([two letter string of item you want to find, can be any state])
        # object has three useful attributes: .deaths, .cases (.confirmed also works), and .recovered
              
        texas = covid19_data.jsonByNameShort("TX")    # create an object for our total data
        california = covid19_data.jsonByNameShort("CA")
        new_york = covid19_data.jsonByNameShort("NY")
        print(texas, california, new_york)
      

      Sample Output::

        {'Confirmed': 1353, 'Deaths': 17, 'Recovered': 0, 'Active': 0}
        {'Confirmed': 3172, 'Deaths': 67, 'Recovered': 0, 'Active': 0}
        {'Confirmed': 33033, 'Deaths': 366, 'Recovered': 0, 'Active': 0}
      

Sources

This package utilizes John Hopkins University’s ArcGIS data layer to get its data. Please follow their terms of service and licensing when using their data in your application. The data layer pulls data from the following sources: