Skip to main content

Python web service API for the Central Bank of Chile Statistical Database.

Project description

API para acceder al Web Service del Banco Central

La API del Banco Central de Chile tiene como único propósito facilitar la captura y el uso de las estadísticas que publica el Banco, poniendo a su disposición un servicio de transmisión directo y estándar entre sistemas de información, de datos y series obtenidos directamente de las Base de Datos Estadísticos (BDE) que publica el Banco en su sitio web oficial.

Para hacer uso del servicio es necesario registrarse siguiendo las instrucciones desplegadas en la página web de la API BDE. Adicionalmente, en aquel sitio se encuentra el catálogo de series disponibles a consultar, con sus respectivos códigos de identificación.

La librería bcchapi contiene clases y métodos para poder hacer uso de la API desde python. Los resultados principales de las funciones disponibles se entregan en un objeto DataFrame de pandas, aunque también existen otras posibilidades de acuerdo a las necesidades del usuario.

Instalación

La librería se puede instalar desde el Python Package Index:

pip install bcchapi

Ejemplos de uso

El objeto principal de la librería es Siete, que permite crear cuadros estadísticos y buscar series disponibles. Para iniciarlo se deben incluir las credenciales del usuario o llamar a un archivo de texto que las contenga:

import bcchapi
# Incluyendo credenciales explícitamente
siete = bcchapi.Siete("usuario", "contraseña")
# O bien llamando a un archivo
siete = bcchapi.Siete(file="credenciales.txt")

En caso de que no conozcamos el código de la serie que se desea consultar, este objeto permite utilizar el método buscar para revisar las distintas series que de acuerdo asu nombre. El resultado es un DataFrame de pandas:

# Por defecto busca en el nombre en español
siete.buscar("antofagasta")
# También se puede buscar en inglés
siete.buscar("price", ingles=True)

Habiendo encontrado las series que se desean consultar, el método cuadro permite crear una tabla con las especificaciones requeridas por el usuario:

siete.cuadro(
    series=["F032.IMC.IND.Z.Z.EP18.Z.Z.0.M", "G073.IPC.IND.2018.M"],   
    nombres=["imacec", "ipc"],
    desde="2010-01-01",
    hasta="2020-01-01",
    variacion=12, # variación 12 meses
    frecuencia="A", # frecuencia anual
    observado={"imacec":"mean", "ipc":"last"} # funciones de agregación
)
#                 imacec       ipc
#   2010-12-31       NaN       NaN
#   2011-12-31  0.062239  0.044377
#   2012-12-31  0.061553  0.014870
#   2013-12-31  0.033085  0.030144
#   2014-12-31  0.017926  0.046464
#   2015-12-31  0.021519  0.043785
#   2016-12-31  0.017530  0.027087
#   2017-12-31  0.013577  0.022696
#   2018-12-31  0.039900  0.025632
#   2019-12-31  0.007431  0.030013
#   2020-12-31 -0.006534  0.005662

Para extender la librería a nuevos aplicativos, dependiendo de las necesidades del usuario, se pueden heredar las funcionalidades de la clase webservice.Session. Esta clase contiene los métodos get y search, que envuelven los métodos disponibles por el Web Service. A modo de ejemplo, si queremos generar una objeto que permita obtener el último dato disponible de una serie, podemos crear la siguiente clase:

class NuevaClase(bcchapi.webservice.Session):
    def ultimo_dato(self, serie:str) -> float:
        """Devuelve último dato de una serie."""
        respuesta = self.get(serie)
        valores = respuesta.Series["Obs"]
        ultimo = valores[-1]["value"]
        return float(ultimo)

Esta NuevaClase se inicia de manera similar a los ejemplos presentados anteriormente:

nc = NuevaClase("usuario", "contraseña")
nc.ultimo_dato("F073.TCO.PRE.Z.D") # TCO

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bcchapi-1.1.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

bcchapi-1.1.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file bcchapi-1.1.0.tar.gz.

File metadata

  • Download URL: bcchapi-1.1.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.1

File hashes

Hashes for bcchapi-1.1.0.tar.gz
Algorithm Hash digest
SHA256 2567f4488f20c7ace2c52e5c7765cb3f2f8d1ae9cb6803ddecf9380ed8020029
MD5 e650569e1d92388debd38c7ffc0187b4
BLAKE2b-256 712a1d3ec4a6c91d627691079dcac3dcf9bcd2761311f29cf00e9dd179693905

See more details on using hashes here.

File details

Details for the file bcchapi-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: bcchapi-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.1

File hashes

Hashes for bcchapi-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a3a8c30bc7315cfd4aa82bb94e8de88e8473db8da2151fa87a8367450184da16
MD5 e6159e73a25c9888efb1a656c3f8ef21
BLAKE2b-256 c0b4bae8671336af11ef4146f04a97906e3190a6e3c59fce3d9976dee2d6d866

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page