API (interfaz de programación de aplicaciones) es una interfaz informática que interactúa entre varios programas.
JSON (Notación de objetos de JavaScript) es un formato ligero para almacenar y transportar datos. Se utiliza para enviar datos del servidor a la web.
Módulos requeridos:
- matplotlib
- peticiones
- pandas
- json
Comandos para instalar módulos:
pip install matplotlib pip install requests pip install pandas
Pasos:
- Importación de todos los módulos requeridos.
- Llamar a la API y obtener datos JSON.
- Obtener los datos del Distrito Sabio del Estado.
- Visualización de datos.
La siguiente URL lo redirige a la API https://api.covid19india.org/state_district_wise.json
Importación de todos los módulos requeridos
Python3
#importing modules import json import requests import pandas as pd import matplotlib.pyplot as plt
Función para obtener datos JSON de API y visualización de datos
Python3
#storing the url in the form of string url="https://api.covid19india.org/state_district_wise.json" #function to get data from api def casesData(): #getting the json data by calling api data = ((requests.get(url)).json()) states = []
Obtener nombres de estado disponibles en datos JSON
Python3
# getting statewise data for state in states: f = (data[state]['districtData']) # states data available in JSON Data ''' 0 State Unassigned 1 Andaman and Nicobar Islands 2 Andhra Pradesh 3 Arunachal Pradesh 4 Assam 5 Bihar 6 Chandigarh 7 Chhattisgarh 8 Delhi 9 Dadra and Nagar Haveli and Daman and Diu 10 Goa 11 Gujarat 12 Himachal Pradesh 13 Haryana 14 Jharkhand 15 Jammu and Kashmir 16 Karnataka 17 Kerala 18 Ladakh 19 Lakshadweep 20 Maharashtra 21 Meghalaya 22 Manipur 23 Madhya Pradesh 24 Mizoram 25 Nagaland 26 Odisha 27 Punjab 28 Puducherry 29 Rajasthan 30 Sikkim 31 Telangana 32 Tamil Nadu 33 Tripura 34 Uttar Pradesh 35 Uttarakhand 36 West Bengal '''
Obtener los datos estatales
Python3
# getting statewise data for state in states: f = (data[state]['districtData']) tc = [] dis = [] act, con, dea, rec = 0, 0, 0, 0 # getting districtwise data for key in (data[state]['districtData']).items(): district = key[0] dis.append(district) active = data[state]['districtData'][district]['active'] confirmed = data[state]['districtData'][district]['confirmed'] deaths = data[state]['districtData'][district]['deceased'] recovered = data[state]['districtData'][district]['recovered'] if district == 'Unknown': active, confirmed, deaths, recovered = 0, 0, 0, 0 tc.append([active, confirmed, deaths, recovered]) act = act + active con = con + confirmed dea = dea + deaths rec = rec + recovered tc.append([act, con, dea, rec]) dis.append('Total') parameters = ['Active', 'Confirmed', 'Deaths', 'Recovered']
Creando DataFrame usando pandas
Python3
# creating a dataframe df = pd.DataFrame(tc, dis, parameters) print('COVID - 19', state, 'District Wise Data') print(df)
Visualización de datos usando Matplotlib
Python3
# plotting of data plt.bar(dis, df['Active'], width=0.5, align='center') fig = plt.gcf() fig.set_size_inches(18.5, 10.5) plt.xticks(rotation=75) plt.show() print('*'*100)
Código de la función CasesData() final
Python3
# function to get data from api def casesData(): # getting the json data by calling api data = ((requests.get(url)).json()) states = [] # getting states for key in data.items(): states.append(key[0]) # getting statewise data for state in states: f = (data[state]['districtData']) tc = [] dis = [] act, con, dea, rec = 0, 0, 0, 0 # getting districtwise data for key in (data[state]['districtData']).items(): district = key[0] dis.append(district) active = data[state]['districtData'][district]['active'] confirmed = data[state]['districtData'][district]['confirmed'] deaths = data[state]['districtData'][district]['deceased'] recovered = data[state]['districtData'][district]['recovered'] if district == 'Unknown': active, confirmed, deaths, recovered = 0, 0, 0, 0 tc.append([active, confirmed, deaths, recovered]) act = act + active con = con + confirmed dea = dea + deaths rec = rec + recovered tc.append([act, con, dea, rec]) dis.append('Total') parameters = ['Active', 'Confirmed', 'Deaths', 'Recovered'] # creating a dataframe df = pd.DataFrame(tc, dis, parameters) print('COVID - 19', state, 'District Wise Data') print(df) # plotting of data plt.bar(dis, df['Active'], width=0.5, align='center') fig = plt.gcf() fig.set_size_inches(18.5, 10.5) plt.xticks(rotation = 75) plt.show() print('*' * 100)
Implementación definitiva:
Python3
# importing modules import json import requests import pandas as pd import matplotlib.pyplot as plt # storing the url in the form of string url = "https://api.covid19india.org/state_district_wise.json" # function to get data from api def casesData(): # getting the json data by calling api data = ((requests.get(url)).json()) states = [] # getting states for key in data.items(): states.append(key[0]) # getting statewise data for state in states: f = (data[state]['districtData']) tc = [] dis = [] act, con, dea, rec = 0, 0, 0, 0 # getting districtwise data for key in (data[state]['districtData']).items(): district = key[0] dis.append(district) active = data[state]['districtData'][district]['active'] confirmed = data[state]['districtData'][district]['confirmed'] deaths = data[state]['districtData'][district]['deceased'] recovered = data[state]['districtData'][district]['recovered'] if district == 'Unknown': active, confirmed, deaths, recovered = 0, 0, 0, 0 tc.append([active, confirmed, deaths, recovered]) act = act + active con = con + confirmed dea = dea + deaths rec = rec + recovered tc.append([act, con, dea, rec]) dis.append('Total') parameters = ['Active', 'Confirmed', 'Deaths', 'Recovered'] # creating a dataframe df = pd.DataFrame(tc, dis, parameters) print('COVID - 19', state, 'District Wise Data') print(df) # plotting of data plt.bar(dis, df['Active'], width = 0.5, align = 'center') fig = plt.gcf() fig.set_size_inches(18.5, 10.5) plt.xticks(rotation = 75) plt.show() print('*' * 100) # states data available through API ''' 0 State Unassigned 1 Andaman and Nicobar Islands 2 Andhra Pradesh 3 Arunachal Pradesh 4 Assam 5 Bihar 6 Chandigarh 7 Chhattisgarh 8 Delhi 9 Dadra and Nagar Haveli and Daman and Diu 10 Goa 11 Gujarat 12 Himachal Pradesh 13 Haryana 14 Jharkhand 15 Jammu and Kashmir 16 Karnataka 17 Kerala 18 Ladakh 19 Lakshadweep 20 Maharashtra 21 Meghalaya 22 Manipur 23 Madhya Pradesh 24 Mizoram 25 Nagaland 26 Odisha 27 Punjab 28 Puducherry 29 Rajasthan 30 Sikkim 31 Telangana 32 Tamil Nadu 33 Tripura 34 Uttar Pradesh 35 Uttarakhand 36 West Bengal ''' #Driver Code casesData()
Producción:
Publicación traducida automáticamente
Artículo escrito por chintamanenishanmukhchowdary y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA