MAX или последнее значение из списка dict в Python - PullRequest
0 голосов
/ 02 мая 2020

У меня есть список словаря, как показано ниже

[
    {'ClientId': 70433, 'ReportDate': '2020-05-01', 'JobId': 389512, 'AccountPnlCount': 507, 'DeskPnlCount': 545, 'ThresholdName': 'Threshold2', 'RuleName': 'PnlRowCountCheck', 'StartTime': datetime.datetime(2020, 5, 1, 21, 8, 32, 940000), 'CSTTimeStr': '2020-05-01T21:08:32.940000Z'},
    {'ClientId': 70433, 'ReportDate': '2020-05-01',  'JobId': 389525, 'AccountPnlCount': 507, 'DeskPnlCount': 545, 'ThresholdName': 'Threshold2', 'RuleName': 'PnlRowCountCheck', 'StartTime': datetime.datetime(2020, 5, 2, 0, 15, 21, 820000), 'CSTTimeStr': '2020-05-02T00:15:21.820000Z'}
]

Мне нужна последняя запись JobId number На основе StartTime. то есть для МАКСА "StartTime" мне нужен соответствующий JobId, который является 389525.

Можете ли вы помочь? спасибо

1 Ответ

1 голос
/ 02 мая 2020

Используйте max с аргументом key, чтобы найти словарь, затем просто извлеките JobId из этого словаря:

>>> derp
[{'ClientId': 70433, 'ReportDate': '2020-05-01', 'JobId': 389512, 'AccountPnlCount': 507, 'DeskPnlCount': 545, 'ThresholdName': 'Threshold2', 'RuleName': 'PnlRowCountCheck', 'StartTime': datetime.datetime(2020, 5, 1, 21, 8, 32, 940000), 'CSTTimeStr': '2020-05-01T21:08:32.940000Z'}, {'ClientId': 70433, 'ReportDate': '2020-05-01', 'JobId': 389525, 'AccountPnlCount': 507, 'DeskPnlCount': 545, 'ThresholdName': 'Threshold2', 'RuleName': 'PnlRowCountCheck', 'StartTime': datetime.datetime(2020, 5, 2, 0, 15, 21, 820000), 'CSTTimeStr': '2020-05-02T00:15:21.820000Z'}]
>>> max(derp, key=lambda d: d['StartTime'])['JobId']
389525
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...