获取期货订单状态、数量、边 Binance

Get Futures order status, qty, side Binance

我正在尝试获取订单状态、数量和边;但是,我收到以下错误:

list indices must be integers or slices, not str

数据:

[{'orderId': 123xxx, 'symbol': 'BTCUSDT', 'status': 'NEW', 'clientOrderId': 'xxx', 'price': '32000', 'avgPrice': '0', 'origQty': '0.001', 'executedQty': '0', 'cumQuote': '0', 'timeInForce': 'GTC', 'type': 'LIMIT', 'reduceOnly': False, 'closePosition': False, 'side': 'BUY', 'positionSide': 'BOTH', 'stopPrice': '0', 'workingType': 'CONTRACT_PRICE', 'priceProtect': False, 'origType': 'LIMIT', 'time': xxx, 'updateTime': xxx}, {'orderId': 123xxx, 'symbol': 'BTCUSDT', 'status': 'NEW', 'clientOrderId': 'xxx', 'price': '32000', 'avgPrice': '0', 'origQty': '0.001', 'executedQty': '0', 'cumQuote': '0', 'timeInForce': 'GTC', 'type': 'LIMIT', 'reduceOnly': False, 'closePosition': False, 'side': 'BUY', 'positionSide': 'BOTH', 'stopPrice': '0', 'workingType': 'CONTRACT_PRICE', 'priceProtect': False, 'origType': 'LIMIT', 'time': xxx, 'updateTime': xxx}]

代码:

get_open_order = client.futures_get_open_orders(symbol=config.SYMBOL, orderID=123xxx)

get_status = get_open_order['status']
get_qty = get_open_order['origQty']
get_side = get_open_order['side']

print(f"STATUS: {get_status} | QUANTITY: {get_qty} | SIDE: {get_side}")

这里有什么错误?

看起来 get_open_order 是一个 list,有两个 dict 项,每个都是一个订单。

这是您访问 list 中的订单的方法(我已将其重命名为 get_open_orders 以表明它包含多个订单,而不仅仅是一个)。

        #get_open_order = client.futures_get_open_orders(symbol=config.SYMBOL, orderID=123xxx)
        get_open_orders = [
            {'orderId': 123001, 'symbol': 'BTCUSDT', 'status': 'NEW', 'clientOrderId': 'xxx', 'price': '32000', 'avgPrice': '0', 'origQty': '0.001', 'executedQty': '0', 'cumQuote': '0', 'timeInForce': 'GTC', 'type': 'LIMIT', 'reduceOnly': False, 'closePosition': False, 'side': 'BUY', 'positionSide': 'BOTH', 'stopPrice': '0', 'workingType': 'CONTRACT_PRICE', 'priceProtect': False, 'origType': 'LIMIT', 'time': 777, 'updateTime': 777}, 
            {'orderId': 123002, 'symbol': 'BTCUSDT', 'status': 'NEW', 'clientOrderId': 'xxx', 'price': '32000', 'avgPrice': '0', 'origQty': '0.001', 'executedQty': '0', 'cumQuote': '0', 'timeInForce': 'GTC', 'type': 'LIMIT', 'reduceOnly': False, 'closePosition': False, 'side': 'BUY', 'positionSide': 'BOTH', 'stopPrice': '0', 'workingType': 'CONTRACT_PRICE', 'priceProtect': False, 'origType': 'LIMIT', 'time': 777, 'updateTime': 777}
        ]        
        
        for get_open_order in get_open_orders:
            get_status = get_open_order['status']
            get_qty = get_open_order['origQty']
            get_side = get_open_order['side']

            print(f"STATUS: {get_status} | QUANTITY: {get_qty} | SIDE: {get_side}")

输出为:

STATUS: NEW | QUANTITY: 0.001 | SIDE: BUY
STATUS: NEW | QUANTITY: 0.001 | SIDE: BUY