Usar en python
Con requests
Armar una función wrapper que facilite construir llamadas a la API.
import requests import urllib.parse def get_api_call(ids, **kwargs): API_BASE_URL = "https://apis.datos.gob.ar/series/api/" kwargs["ids"] = ",".join(ids) return "{}{}?{}".format(API_BASE_URL, "series", urllib.parse.urlencode(kwargs))
Una llamada válida a la API debe tener por lo menos un id de una serie válida, y luego puede tener parámetros opcionales.
api_call = get_api_call(["168.1_T_CAMBIOR_D_0_0_26"], start_date="2018-08") print(api_call) https://apis.datos.gob.ar/series/api/series?start_date=2018-08&ids=168.1_T_CAMBIOR_D_0_0_26
Obtener la respuesta en un diccionario.
result = requests.get(api_call).json() print(result) {'data': [['2018-08-01', 27.525], ['2018-08-02', 27.45], ['2018-08-03', 27.29], ['2018-08-04', 27.29], ['2018-08-05', 27.29], ['2018-08-06', 27.33], ['2018-08-07', 27.395], ['2018-08-08', 27.65], ['2018-08-09', 28.11], ['2018-08-10', 29.25], ['2018-08-11', 29.25], ['2018-08-12', 29.25], ['2018-08-13', 29.925], ['2018-08-14', 29.61], ['2018-08-15', 30.0], ['2018-08-16', 29.84]], 'meta': [{'end_date': '2018-08-16', 'frequency': 'day', 'start_date': '2018-08-01'}, {'catalog': {'title': 'Datos Programación Macroeconómica'}, 'dataset': {'description': 'Datos de tipo de cambio $-USD - futuro dólar . Con respecto al dólar de Estados Unidos. Frecuencia diaria.', 'issued': '2017-09-28', 'source': 'BCRA, MAE, Rofex y Bloomberg', 'title': 'Tipo de Cambio $-USD - Futuro Dólar'}, 'distribution': {'downloadURL': 'http://infra.datos.gob.ar/catalog/sspm/dataset/168/distribution/168.1/download/datos-tipo-cambio-usd-futuro-dolar-frecuencia-diaria.csv', 'title': 'Tipo de cambio $-USD - futuro dólar. Valores diarios'}, 'field': {'description': 'Tipo de Cambio BNA (Vendedor)', 'id': '168.1_T_CAMBIOR_D_0_0_26', 'units': 'Pesos argentinos por dólar'}}], 'params': {'identifiers': [{'dataset': '168', 'distribution': '168.1', 'id': '168.1_T_CAMBIOR_D_0_0_26'}], 'ids': '168.1_T_CAMBIOR_D_0_0_26', 'start_date': '2018-08'}}
Con pandas
Las llamadas a la API en CSV se pueden leer directamente a un pandas.DataFrame
.
import pandas as pd df = pd.read_csv(get_api_call( ["168.1_T_CAMBIOR_D_0_0_26", "101.1_I2NG_2016_M_22", "116.3_TCRMA_0_M_36", "143.3_NO_PR_2004_A_21", "11.3_VMATC_2004_M_12"], format="csv", start_date=2018 ))
indice_tiempo tipo_cambio_bna_vendedor ipc_2016_nivel_general \ 2018-01-01 19.023065 127.0147 2018-02-01 19.835179 130.2913 2018-03-01 20.229355 133.5028 2018-04-01 20.251100 136.9380 2018-05-01 23.600452 139.5800 2018-06-01 26.674333 145.0582 2018-07-01 27.607645 149.1178 tipo_cambio_real_multilateral_actual indice_serie_original construccion 96.628715 144.086686 158.920762 96.121512 138.470530 152.630381 93.062453 155.570021 158.931156 90.715862 152.432629 149.860484 104.302984 160.622476 154.011846 114.546258 NaN NaN 107.105698 NaN NaN