Сортировка списка словарей по двум ключам словаря

Необходимо отсортировать список словарей который приходит ответом от апи. Cписок выглядит подобным способом. Отсортировать нужно по полю date и time т.е f'{[date]} {[time]}'

 ['callConfirmationStatus': None,
  'clientComment': None,
  'clientId': 31072,
  'clinicId': 1,
  'coMagic': None,
  'createdAt': 1635407965,
  'date': '2021-11-20',
  'duration': 15,
  'entryTypeIds': [2686],
  'id': 47251,
  'note': '{{ID СДЕЛКИ: 21360756}}  ',
  'orderId': 39820,
  'roistat': None,
  'status': 'paid',
  'time': '13:00',
  'updatedAt': 1637399813,
  'userId': 59},
  {'callConfirmationStatus': None,
  'clientComment': None,
  'clientId': 29173,
  'clinicId': 1,
  'coMagic': None,
  'createdAt': 1633504927,
  'date': '2021-11-20',
  'duration': 20,
  'entryTypeIds': [2856],
  'id': 44169,
  'note': '{{ID СДЕЛКИ: 21098836}} ',
  'orderId': 39780,
  'roistat': None,
  'status': 'paid',
  'time': '11:00',
  'updatedAt': 1637394246,
  'userId': 89},
]

есть пример такой сортировки на php, но как это реализовать на python?

function date_sort($a, $b) 
{
    if (strtotime($a['attributes']['date'].' '.$a['attributes']['time']) == strtotime($b['attributes']['date'].' '.$b['attributes']['time'])) {
        return 0;
    }
    return (strtotime($a['attributes']['date'].' '.$a['attributes']['time']) < strtotime($b['attributes']['date'].' '.$b['attributes']['time'])) ? -1 : 1;
}

usort($list, "date_sort");

Ответы (1 шт):

Автор решения: GrAnd

Просто надо указать функции сортировки данные по каким необходимо сортировать.

#data = [{...}, {...}]
result = sorted(data, key=lambda item: (item["date"], item["time"]))

Или прямо в исходном списке (инлайн), если нет необходимости его сохранять.

data.sort(key=lambda item: (item["date"], item["time"]))
→ Ссылка