Работа с 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']))