Для начала работы нужно создать новый экземпляр класса CBRFetcher
со списком валют, для которых нужно получить курс.
Каждая валюта должна быть представлена своим ISO-кодом (регистр значения не имеет). Пример:
from provider import CBRFetcher
if __name__ == '__main__':
list_currencies = ['eur','usd','gbp']
cbr = CBRFetcher(list_currencies)
Для получения информации по валютам достаточно вызвать метод getCurrenciesInfo
:
info = cbr.getCurrenciesInfo(all = False)
Параметр all
отвечает за то, вывести ли информацию обо всех валютах, о которых имеется информация в ЦБ РФ, или только о тех, которые были указаны при создании экземпляра.
Пример выходной информации:
[ { "code": "R01035",
"iso_char_code": "GBP",
"iso_num_code": "826",
"verbose_en": "British Pound Sterling",
"verbose_ru": "Фунт стерлингов Соединенного королевства"},
{ "code": "R01235",
"iso_char_code": "USD",
"iso_num_code": "840",
"verbose_en": "US Dollar",
"verbose_ru": "Доллар США"},
{ "code": "R01239",
"iso_char_code": "EUR",
"iso_num_code": "978",
"verbose_en": "Euro",
"verbose_ru": "Евро"}]
Для вывода информации только о какой-то конкретной валюте достаточно вызвать метод getCurrencyInfo
:
usd_info = cbr.getCurrencyInfo('usd')
Результат:
{
"code": "R01235",
"iso_char_code": "USD",
"iso_num_code": "840",
"verbose_en": "US Dollar",
"verbose_ru": "Доллар США"
}
Для получения курса необходимо вызвать метод getExchanges
с входным параметром нужного диапазона дат - либо одной даты для получения курса по валютам начиная с этой даты и заканчивая вчерашним днем, либо списка из двух дат - даты начала и даты окончания диапазона, для которого нужно получить информацию. В обоих случаях даты должны быть представлены объектами дат.
Пример:
simple_date = datetime.date(2018,8,26)
exchanges_simple = cbr.getExchanges(simple_date)
simple_date_range = [datetime.date(2018,8,9),datetime.date(2018,8,10)]
exchanges_date_range = cbr.getExchanges(simple_date_range)
Результат:
{
"code": "R01235",
"date": "2018-08-10",
"iso_char_code": "USD",
"iso_num_code": "840",
"rate": "66.2856",
"verbose_en": "US Dollar",
"verbose_ru": "Доллар США"
}