Вопрос по работе с json в Python

У меня есть json файл, в котором:

{
    "7283": {
        "name": "man",
        "money": 999288
        },
    "9937": {
        "name": "dog",
        "money": 28
        }
}

Как я могу обойти ключи 7283 и 9973, сразу получив name и money, для того чтобы сделать топ значений, который должен выглядеть так:

1. man: 999288
2. dog: 28

И возможно ли это?


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

Автор решения: Jack_oS

Если просто вывести на печать

d = {
    "7283": {
        "name": "man",
        "money": 999288
        },
    "9937": {
        "name": "dog",
        "money": 28
        }
}

то так:

f = [(x['name'], x['money']) for x in d.values()]
for i, x in enumerate(f, 1):
    print(f'{i}. {x[0]}: {x[1]}')

выдаст:

1. man: 999288
2. dog: 28

Так, чтоб вывод был в порядке убывания по money:

for i, x in enumerate(sorted(f, key=lambda x: x[1], reverse=True), 1):
    print(f'{i}. {x[0]}: {x[1]}')
→ Ссылка