У меня есть следующий вложенный словарь:
go._Order_Data_DB.items()
Out[62]: dict_items([(84852344, {'_action': 'OPEN', '_type': 0, '_symbol': 'EURUSD', '_price': 0.0, '_SL': 50, '_TP': 50, '_comment': 'DWX_Python_to_MT', '_lots': 0.01, '_magic': 123456, '_ticket': 0}), (84852345, {'_action': 'CLOSE', '_type': 0, '_symbol': 'EURUSD', '_price': 0.0, '_SL': 50, '_TP': 50, '_comment': 'DWX_Python_to_MT', '_lots': 0.01, '_magic': 123456, '_ticket': 84852345}),
(84852374, {'_action': 'OPEN', '_type': 0, '_symbol': 'GBPUSD', '_price': 0.0, '_SL': 50, '_TP': 50, '_comment': 'DWX_Python_to_MT', '_lots': 0.01, '_magic': 123456, '_ticket': 84852345})])
Я хотел бы получить номера заказов (ключ), если выполнены два условия: '_action' == 'OPEN'
и '_symbol' == ccy
.Я попытался использовать функцию ниже, но она смотрит только на первый критерий, было бы замечательно, если бы кто-то знал, как заставить оба критерия работать, поскольку он, кажется, игнорирует 'и'.
def get_order_num(ccy):
for k, v in go._Order_Data_DB.items():
for k1, v1 in v.items():
if v1 == ccy and v1 == 'OPEN':
return(k)