python - 接受 1 个位置参数,但给出了 2 个;组合字符串作为参数
问题描述
我对python很陌生,即使在搜索inet之后,我也不明白这里出了什么问题。为了使用 Binance API,我需要这样的命令:client.get_order_book(symbol = 'ETHBTC')
由于符号是动态的,我尝试了
x1 = 'symbol = '
x2 = symbols[0].get('symbol') #Output: ETHBTC
x = x1 + "'" + x2 + "'"
print(x) #Output: symbol = 'ETHBTC'
但是当我打电话时
client.get_order_book(x)
它得出错误:
TypeError: get_order_book() 接受 1 个位置参数,但给出了 2 个
这是代码的其余部分:
client = Client(api_key, api_secret)
symbols = client.get_ticker()
print(symbols[0].get('symbol')) #Output ETHBTC
y = len(symbols)
for i in range(y):
x1 = 'symbol = '
x2 = symbols[i].get('symbol')
x = x1 + "'" + x2 + "'"
print(x) #Output: symbol = 'ETHBTC'
print(client.get_order_book(x))
我读了很多关于self
,但我不明白,在这里必须在哪里以及如何使用它?!
解决方案
x
是文字 string symbol='ETHBTC'
,而不是“保存”的关键字参数。您尝试的呼叫相当于
client.get_order_book("symbol='ETHBTC'"),
但此方法不接受任何位置参数(除了self
)。这是签名:
def get_order_book(self, **params):
预打包关键字参数并模拟
client.get_order_book(symbol='ETHBTC')
你需要一个dict
封装关键字参数。
x = {'symbol': 'ETHBTC'}
client.get_order_book(**x)
推荐阅读
- angular - 如何在两个组件中使用一个变量?
- javascript - 我想在使用范围输入更改输入值时过滤数组的数字,但是当我过滤该值时会出错
- swift - 快速组合 for 循环中的条件
- json - 为什么 golang 自定义解组的结构为零
- bokeh - 散景:在 javascript 回调中隐藏图例项
- javascript - 如果达到产品数量,则触发警报。如果产品数量已经达到,不要触发警报 Woocommerce
- c++ - 没有创建日志文件
- ruby-on-rails - 使用rails 5在json中渲染多个包含
- javascript - 在 ES6 中,函数的这种数组式解构有什么作用?
- python - Jupyter python 内核死了 - OpenAI