У меня есть список словарей, структурированных так.Python, сортирующий список глубоко вложенных словарей по значению
[
{
'id': 1,
'last_message': {
'sent_at': '2015-10-15T17:48:52.515Z',
'...' : '...'
},
'...' : '...',
},
{
'id': 2,
'last_message': {
'sent_at': '2015-10-15T17:45:52.515Z',
'...' : '...'
},
'...' : '...',
},
{
'id': 3,
'last_message': {
'sent_at': '2015-10-15T17:43:52.515Z',
'...' : '...'
},
'...' : '...',
}
]
И хочу, чтобы отсортировать список по ['last_message']['sent_at']
.
Я попытался сделать такой способ вставки, но это приводит к бесконечному циклу.
ret = []
for conversation in conversations:
if len(ret) > 1:
for conv in ret:
if conversation['last_message']['sent_at'] > conv['last_message']['sent_at']:
ret.insert(ret.index(conv), conversation)
continue
else:
ret.append(conversation)
Что я могу сделать для этого?
Вы не изобретать колесо. То, что вы хотите, - это [ключевая функция] (https://wiki.python.org/moin/HowTo/Sorting#Key_Functions) и собственный 'sort' Python. –
[Список сортировки dict] (http://stackoverflow.com/questions/72899/how-do-i-sort-a-list-of-dictionaries-by-values-of-the-dictionary-in-python) – sam