Работа с JSON в Python. Парсинг JSON

Задача. Переменная people содержит строку в формате JSON, в которой вы можете получить личные данные 100 человек. Каждого человека представляет предмет (словарь) с ключами: имя страна возраст Распечатайте информацию о каждом человеке в соответствии с примером ниже. Распечатку необходимо отсортировать по возрасту, а при равенстве возраста необходимо расположить в алфавитном порядке

import json

people = """
{
   "personal" :   [
     {
       "name" :   "Melissa Crawford" ,
       "country" :  "Lebanon",
       "age" :    17
     } ,
     {
       "name" :   "Paul Herrera" ,
       "country" :  "Kiribati",
       "age" :    17
     } ,
     {
       "name" :   "Justin Galvan" ,
       "country" :  "Namibia",
       "age" :    19
     } ,
     {
       "name" :     "Larry Bray" ,
       "country" :  "Brunei Darussalam",
       "age" :      21
     },
     {
       "name" :   "Mary Estes" ,
       "country" :  "Montenegro",
       "age" :    19
     }
   ]
 }
"""
data = json.loads(people)
data1 = sorted(data, key = lambda x: (x['age'], x['name']))
for txt in data1["personal"]:
    lst = txt['name'],', ', txt['country'],', ',  txt['age']
    print(lst)

Как правильно сделать сортировку в строке data1 = sorted(data, key = lambda x: (x['age'], x['name']))? Выдает ошибку.


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

Автор решения: Vladislav Pavkin

У вас в структуре список людей не на верхнем уровне, а внутри ключа personal. Попробуйте так:

data1 = sorted(data['personal'], key = lambda x: (x['age'], x['name']))
→ Ссылка