Имеется список словарей следующего содержания.
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
Комментариев нет:
Отправить комментарий