Обходной путь, хотя и без использования официального клиента Coinbase, будет следующим:
import requests
import json
# Do This to Avoid Warning
headers = {
'CB-VERSION': '2017-12-08'
}
# Make Request
data = requests.get('https://api.coinbase.com/v2/prices/BTC-USD/sell/', headers=headers).text
# Parse Response, Get Amount
price = json.loads(data)['data']['amount]
Очевидно, не очень надежный с точки зрения обработки ошибок, исключений или любых других типов утверждений, которые могут понадобиться (которые должны быть у официального клиента), которые необходимы для обеспечения уверенности, необходимой для реальных покупок/продаж/переводов.
РЕДАКТИРОВАТЬ: ОБНОВИТЬ
Судя по всему, это известная проблема:
Читайте здесь:
https://github.com/coinbase/coinbase-python/issues/32
Предположительно уже исправлено в гитхабе master
, хотя явно еще не отражено в pip
версии.
Цитируя пользователя kflecki:
Я исправил это, зайдя в файл client.py и изменив код, чтобы он выглядел следующим образом. Сейчас работает нормально, но было бы неплохо, если бы файлы были такими. Но это простое решение, которое вы можете исправить самостоятельно.
def get_spot_price(self, **params):
"""https://developers.coinbase.com/api/v2#get-spot-price"""
if 'currency_pair' in params:
currency_pair = params['currency_pair']
else:
currency_pair = 'BTC-USD'
response = self._get('v2', 'prices', currency_pair, 'spot', data=params)
return self._make_api_object(response, APIObject)
И теперь команда работает так:
eth_price = client.get_spot_price(currency_pair = 'ETH-USD')
person
alphazwest
schedule
08.12.2017
EUR
(я в США). Конечно, можно было бы получить цену в обратном порядке, сначала вызвав метод.get_exchange_rates()
, но я чувствую, что это не нужно — и что я упускаю что-то фундаментальное. - person alphazwest   schedule 09.12.2017