Get order parameters from Python-Binance

Tags: , , ,



I’m trying to get some parameters of my orders from Python-Binance API. In this case, I would like to get only the ‘status’ of an order and save it into a variable.

I used this to get my last order :

orders = client.get_all_orders(symbol=symbol, limit=1)

And I get this result:

[{'clientOrderId': 'HzHxjogJf5rXrzD2uFnTyMn',
'cummulativeQuoteQty': '12.06757100',
'executedQty': '0.00030000',
  'icebergQty': '0.00000000',
  'isWorking': True,
  'orderId': 88978639302,
  'orderListId': -1,
  'origQty': '0.00030000',
  'origQuoteOrderQty': '0.00000000',
  'price': '31558.57000000',
  'side': 'BUY',
  'status': 'FILLED',
  'stopPrice': '31592.06000000',
  'symbol': 'BTCUSDT',
  'time': 1612653434918,
  'timeInForce': 'GTC',
  'type': 'STOP_LOSS_LIMIT',
  'updateTime': 1612109872451}]

Tried to print just the status:

pprint.pprint(orders['status'])

But it returns an error:

TypeError: list indices must be integers or slices, not str

Answer

Try this: pprint.pprint(orders[0]['status'])

order variable is a list that contains dictionary. To get access to first element of the list use [0]. Now you only get value from dictionary. You can do this using [dictionary_key] in this example ['status']. Combining this you can print status.

If you are not sure which type is your variable use simply print(type(variable_name))



Source: stackoverflow