修正API调用的** params参数的语法

问题描述 投票:-1回答:1

我正在尝试使用python-binance包装器来为Binance API编写一个简单的小型交易机器人,主要是为了学习如何。我目前正试图使用​​client.get_symbol_ticker()函数来获取特定交易对的价格,可以在827行找到here

我需要发送的字符串是"AAABBB"形式,其中AAA是第一个股票代码符号,BBB是我想要AAA价格的符号。但是,我没有正确的语法。当我传入一个字符串时:

client.get_symbol_ticker('ETHBTC')

我得到TypeError: get_symbol_ticker() takes exactly 1 argument (2 given)

如果我做

client.get_symbol_ticker(params = 'ETHBTC')

我得到BinanceAPIException: APIError(code=-1104): Not all sent parameters were read; read '0' parameter(s) but was sent '1'.

显然,我只是错误地调用了这个调用的语法。函数原型如下所示:

 def get_symbol_ticker(self, **params):
    """Latest price for a symbol or symbols.
    https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#24hr-ticker-price-change-statistics
    :param symbol:
    :type symbol: str

有人能告诉我调用此函数时使用的正确语法吗?

python kwargs
1个回答
3
投票

你的电话应该是client.get_symbol_ticker(symbol = 'ETHBTC')。了解这一点的唯一方法是查看文档字符串:

:param symbol:
:type symbol: str

这告诉你它需要一个名为symbol的关键字参数。

**params的意思是“获取所有关键字参数并将它们作为变量params中的字典返回”。所以在我上面提供的方法调用的情况下,params将是:

{'symbol': 'ETHBTC'}
© www.soinside.com 2019 - 2024. All rights reserved.