必须是一个新手问题。 试图获取coinbase上的历史每日现货价格。 使用api的python实现如下。
https://developers.coinbase.com/api/v2#get-spot-price
price = client.get_spot_price(currency_pair= 'BTC-USD', date='2016-5-10')
结果(实际上是今天的价格):
2016-5-10
{
"amount": "5613.84",
"base": "BTC",
"currency": "USD"
}
我得到了当前的现货价格。任何人都可以对我所缺少的东西有所了解吗? 谢谢!
答案 0 :(得分:1)
如果您只是自己点击URI,它可以正常工作:
https://api.coinbase.com/v2/prices/BTC-USD/spot?date=2017-05-10
这给出了一个合理的答案(加上我们可以为了这个问题而忽略的警告):
{"data":{"base":"BTC","currency":"USD","amount":"1758.04"},"warnings":[{"id":"missing_version","message":"Please supply API version (YYYY-MM-DD) as CB-VERSION header","url":"https://developers.coinbase.com/api#versioning"}]}
所以在某处您正在进行错误的查询。图书馆被破坏了,或者你正在使用它而不是你所说的那样。尝试上面的URL,然后尝试使用Wireshark之类的工具来查看基于库的解决方案正在查询的内容。
答案 1 :(得分:1)
我发现API无法获取json请求的参数。 它在'clean_params'函数中抛出参数dict,它总是返回一个空字典。
在API文件util.py第31行
中def encode_params(params, **kwargs):
"""Clean and JSON-encode a dict of parameters."""
cleaned = clean_params(params, **kwargs)
return json.dumps(params) # changed from cleaned (was empty) to params
我知道它不干净但有效。
price = client.get_spot_price(currency_pair = 'BTC-USD',date='2014-05-10')
{
"amount": "453.19",
"base": "BTC",
"currency": "USD"
}
答案 2 :(得分:0)
来自API:
以YYYY-MM-DD(UTC)格式指定历史现货价格的日期
您可能需要为月份指定2位数
price = client.get_spot_price(currency_pair= 'BTC-USD', date='2016-05-10')