我正在使用基本脚本从交易所检索一些交易数据,这是响应:
{'info': {'symbol': 'ETHBTC',
'orderListId': -1,
'price': '0.01083700',
'origQty': '0.01800000',
'executedQty': '0.00000000',
'cummulativeQuoteQty': '0.00000000',
'status': 'NEW',
'timeInForce': 'GTC',
'type': 'LIMIT',
'side': 'BUY',
'stopPrice': '0.00000000',
'icebergQty': '0.00000000',
'time': 1567078061338,
'updateTime': 1567078061338,
'isWorking': True}}
现在,我想单独打印此响应的某些部分。
如果我尝试:
tot = exchange.fetch_open_orders()
for x in tot:
print(x['symbol'])
我会得到:'ETHBTC'
。到目前为止,一切正常。
但是,如果我尝试:
tot = exchange.fetch_open_orders()
for x in tot:
print(x['origQty'])
我得到一个KeyError: 'origQty'
,很奇怪,因为当我尝试引用一个不存在但存在的参数时,应该出现此错误,因为它在我的响应中。我在做什么错了?
答案 0 :(得分:1)
在这里,您需要迭代键上的字典,因此每次尝试从键中获取价值时,这就是为什么它会给KeyError
。
当字典中不存在的键仍被访问时,会发生这种情况。
这可以通过以下方法来实现。
for x in tot:
print(tot[x].get('symbol'))
print(tot[x].get('origQty'))
提供输出
ETHBTC
0.01800000
答案 1 :(得分:0)
我不确定tot
的格式是什么。但是您可以尝试一下。
for x, v in dict(tot).items():
print(v['symbol'])
print(v['origQty'])
输出:
ETHBTC
0.01800000