Страницы

Поиск по вопросам

вторник, 7 мая 2019 г.

Python. Сортировка по алфавиту списка словарей

Имеется список словарей следующего содержания.
guys_json = [ { "id": 3, "full_name": "Ффффф", "post": "Водитель", "image": "xxx.jpg"}, { "id": 20, "full_name": "Рррр", "post": "Повар", "image": "yyy.jpg"}, { "id": 11, "full_name": "Аааа", "post": "Директор", "image": "tre.jpg"}, ....]
Необходимо отсортировать его в алфавитном порядке средствами python по полю 'full name' и раскидать объекты в категории по буквам кириллического алфавита ("А", "Б"... "Я"). Подскажите, пожалуйста, с какой стороны подойти к решению


Ответ

Данные в вопросе не являются JSON объектом, например, json.loads() выкинет ошибку.
Если интерпертировать данные как исходный код Питона, тогда guys_json (вводящее в заблуждение имя) является обычным списком словарей (никакого отношения к JSON-формату, кроме того что синтаксис похож (как и задумано)).
Легко отсортировать список словарей по значению заданного поля:
list_of_dicts.sort(key=lambda d: d['full_name'])
Уже есть готовая функция, которую можно вместо lambda использовать:
from operator import itemgetter
list_of_dicts.sort(key=itemgetter('full_name'))
Обе вызова сортируют, используя лексикографический порядок, что для не-ASCII символов может быть не то что нужно. См. Поиск упорядоченной подстроки в строке Python

Комментариев нет:

Отправить комментарий