Вы можете передать в обычае key
функции sorted
с reverse=True
получить заказ нисходящего:
>>> res = [{'cpunumber': '40.0', 'servername': 'f02wn01', 'cpucore_sum': '5.0', 'cpucore_00': '0.399414', 'datetime': '1438887255'},
... {'cpunumber': '40.0', 'servername': 'f02wn01', 'cpucore_sum': '9.375', 'cpucore_00': '1.597656', 'datetime': '1438887250'},
... {'cpunumber': '40.0', 'servername': 'f02wn01', 'cpucore_sum': '3.195312', 'cpucore_00': '0.0', 'datetime': '1438887240'},
... {'cpunumber': '40.0', 'servername': 'f02wn01', 'cpucore_sum': '5.59375', 'cpucore_00': '1.0', 'datetime': '1438887245'}]
>>> sorted(res, key=lambda x: x["datetime"], reverse=True)
[{'cpucore_00': '0.399414',
'cpucore_sum': '5.0',
'cpunumber': '40.0',
'datetime': '1438887255',
'servername': 'f02wn01'},
{'cpucore_00': '1.597656',
'cpucore_sum': '9.375',
'cpunumber': '40.0',
'datetime': '1438887250',
'servername': 'f02wn01'},
{'cpucore_00': '1.0',
'cpucore_sum': '5.59375',
'cpunumber': '40.0',
'datetime': '1438887245',
'servername': 'f02wn01'},
{'cpucore_00': '0.0',
'cpucore_sum': '3.195312',
'cpunumber': '40.0',
'datetime': '1438887240',
'servername': 'f02wn01'}]
Вы также можете отсортировать его на месте с помощью .sort
метода списка (используйте reverse=True
для убывающего порядка):
>>> res.sort(key=lambda x: x["datetime"])
>>> res
[{'cpucore_sum': '3.195312', 'cpucore_00': '0.0', 'servername': 'f02wn01', 'cpunumber': '40.0', 'datetime': '1438887240'}, {'cpucore_sum': '5.59375', 'cpucore_00': '1.0', 'servername': 'f02wn01', 'cpunumber': '40.0', 'datetime': '1438887245'}, {'cpucore_sum': '9.375', 'cpucore_00': '1.597656', 'servername': 'f02wn01', 'cpunumber': '40.0', 'datetime': '1438887250'}, {'cpucore_sum': '5.0', 'cpucore_00': '0.399414', 'servername': 'f02wn01', 'cpunumber': '40.0', 'datetime': '1438887255'}]
в случае, если все ваши dict
s не гарантированы, чтобы иметь ключ "datetime"
, вы можете использовать вместо x.get("datetime")
от x["datetime"]
.
@mu 無 Большое спасибо за ваши данные! помогли и многому научились – SuraJ