Существует довольно большое количество API, предлагающих курс обмена валюты в реальном времени и в прошлом. currencylayer API — один из лучших. Это простой в использовании JSON API, поддерживающий 168 валют и обеспечивающий точные, надежные и стабильные обменные курсы валют.
Цель этой статьи — поделиться основами использования API-интерфейса currencylayer в Python с библиотекой Requests для получения текущих и исторических котировок.
(Для сравнения API курсов обмена валют см. Сравнение бесплатных и платных API конвертеров валют.)
Получить API валютного слоя
Для начала нам сначала нужно получить ключ доступа к API-интерфейсу currencylayer с его веб-сайта.
Процедура регистрации очень проста. На главной странице currencylayer мы переходим к Начать использование API и выбираем Бесплатный план. Бесплатный план поддерживает текущие и исторические котировки 1000 запросов API в месяц.
После создания учетной записи мы входим в нашу Панель управления учетной записью и там находим наш ключ доступа к API.
Библиотека запросов на импорт
Чтобы получить доступ к API в python, нам нужно импортировать библиотеку Requests.
Для тех, кто не знаком с запросами, это простая и элегантная HTTP-библиотека Python для захвата, публикации, потоковой передачи и подключения к защищенным веб-страницам. Если он у вас не установлен, вы можете легко установить его с помощью команды pip install requests
.
Мы также храним наш ключ API currenclaer в виде переменной для более легкого доступа.
api = '2639ccac02d7c15359d45f9a2bc9d8ea'
Получить живую цитату
Теперь все готово. Давайте попробуем получить живую котировку с помощью нашего ключа API.
Это «живой» URL-адрес запроса, как указано на веб-сайте currencylayer.
http://apilayer.net/api/live
? access_key = YOUR_ACCESS_KEY & currencies = USD,AUD,CAD,PLN,MXN & format = 1
Мы будем использовать метод requests.get
для получения ответа JSON.
Во-первых, мы сохраняем все значения необходимых параметров в dict. Мы должны ввести все наши целевые валюты в виде строки, разделенной «,
».
params = {'access_key': api, 'currencies': 'USD,EUR,CNY,HKD', 'format': 1}
Мы создаем объект ответа r
, используя requests.get
.
r = requests.get('http://apilayer.net/api/live', params = params)
Мы кодируем наш ответ в json, используя метод r.json
. И здесь мы получаем нашу живую цитату, хранящуюся в словаре.
# livequote
{u'privacy': u'https://currencylayer.com/privacy', u'quotes': {u'USDCNY': 6.653204, u'USDEUR': 0.852304, u'USDHKD': 7.804504, u'USDUSD': 1}, u'source': u'USD', u'success': True, u'terms': u'https://currencylayer.com/terms', u'timestamp': 1507467546}
Мы можем легко получить доступ к нашим сохраненным данным, используя методы Python dict.
livequote['quotes']['USDCNY']
Получить историческую цитату
Также легко получить историческую котировку с помощью нашего ключа API.
URL-адрес запроса изменяется, как показано ниже. Нам просто нужно изменить URL-адрес и передать дополнительный параметр даты в наш запрос.
http://apilayer.net/api/historical
? access_key = YOUR_ACCESS_KEY & date = YYYY-MM-DD & currencies = USD,AUD,CAD,PLN,MXN & format = 1
Мы используем тот же метод запросов, чтобы получить данные обменного курса в формате JSON на историческую дату.
params = {'access_key': api, 'date': '2017-10-01', 'currencies': 'USD,EUR,CNY,HKD', 'format': 1}
r = requests.get('http://apilayer.net/api/historical', params = params)
histquote = r.json()
Здесь мы получаем нашу историческую цитату, хранящуюся в словаре:
# histquote
{u'date': u'2017-10-01',
u'historical': True,
u'privacy': u'https://currencylayer.com/privacy',
u'quotes': {u'USDCNY': 6.653198,
u'USDEUR': 0.846697,
u'USDHKD': 7.810304,
u'USDUSD': 1},
u'source': u'USD',
u'success': True,
u'terms': u'https://currencylayer.com/terms',
u'timestamp': 1506902399}
Первоначально опубликовано на cecilialee.github.io 8 октября 2017 г.