使用Bittrex API提交限价买单遇参数位置错误问题求助
解决Bittrex API限价买单的参数位置错误问题
我之前尝试用Bittrex API提交限价买单时踩了个坑,遇到了参数位置错误的报错,先把我的代码和报错信息贴出来:
出错的代码
from bittrex.bittrex import API_V2_0, Bittrex import json my_bittrex = Bittrex("zzzzz", "zzzzz", api_version=API_V2_0) trade = 'BTC' currency = 'TRX' market = '{0}-{1}'.format(trade, currency) b = (my_bittrex.buy_limit({market, 100, float(0.00005550)}))
报错信息
Traceback (most recent call last): File "bittrex/apitest.py", line 17, in <module> b = (my_bittrex.buy_limit({market, 100, float(0.00005550)}))
问题分析
仔细排查后发现两个核心问题:
- 错误地用**集合({})**包裹参数传递给
buy_limit方法,集合是无序结构,API无法识别参数对应的字段,直接导致参数位置匹配错误。 - 参数传递格式完全不符合方法的要求。
修复后的代码
Bittrex V2 API的buy_limit方法,正确的参数顺序是market(交易对)、quantity(购买数量)、rate(限价价格),直接按顺序传递参数即可:
from bittrex.bittrex import API_V2_0, Bittrex import json my_bittrex = Bittrex("zzzzz", "zzzzz", api_version=API_V2_0) trade = 'BTC' currency = 'TRX' market = '{0}-{1}'.format(trade, currency) # 去掉集合包裹,直接传递三个位置参数 b = my_bittrex.buy_limit(market, 100, float(0.00005550)) # 打印返回结果方便调试 print(json.dumps(b, indent=2))
如果担心记混参数顺序,更稳妥的方式是用关键字参数传递,这样即使顺序出错也不影响接口识别:
b = my_bittrex.buy_limit(market=market, quantity=100, rate=float(0.00005550))
这样修改后,就能正常提交限价买单请求了。
内容的提问来源于stack exchange,提问作者NIX
相关产品推荐
相关产品推荐

