Найти - Пользователи
Полная версия: Наименьшее значение в Json объекте
Начало » Python для новичков » Наименьшее значение в Json объекте
1 2
Seganapa
Всем доброго дня.

Имеется Json объект, например:

{
"stoner": {
"level": 11,
"can_upgrade": "True",
"pop_tear_down": 2
},
"hide": {
"level": 9,
"can_upgrade": "True",
"pop_tear_down": 0
},
"wall": {
"level": 3,
"can_upgrade": "True",
"pop_tear_down": 0
}
}

Мне нужно получить ключ того элемента, у которого “level” наименьший т.е. в данном примере “wall”.

Гуглить бесполезно, очень мало информации на тему Json Python.

jsonobj = json.loads('{"stoner":{"level": 11,"can_upgrade": "True","pop_tear_down": 2},"hide": {"level": 9,"can_upgrade": "True","pop_tear_down": 0},"wall": {"level": 3,"can_upgrade": "True","pop_tear_down": 0}}')
Singularity
Seganapa

min(jsonobj[key]['pop_tear_down'] for key in jsonobj)
FishHook
Seganapa
Гуглить бесполезно, очень мало информации на тему Json Python.
Это называется “словарь”, “хэш-таблица”, “ассоциативный массив”, что из этого не гуглится?
FishHook
Я б так сделал
min(d, key=lambda x: d[x]["level"])
Singularity
FishHook
и ты такое пушишь в репозиторий на работе ?
Seganapa
min(jsonobj[key]['pop_tear_down'] for key in jsonobj)
Подходит как нельзя лучше!!! Спасибо!

Это называется “словарь”, “хэш-таблица”, “ассоциативный массив”, что из этого не гуглится?

Я гуглил именно насчет Json
FishHook
Singularity
FishHookи ты такое пушишь в репозиторий на работе ?
Вообще то да, а что?
FishHook
Seganapa
Я гуглил именно насчет Json
Прочитай хоть какой-нибудь самый тоненький учебник по питону, сэкономишь массу времени.
Seganapa
min(jsonobj[key]['pop_tear_down'] for key in jsonobj)

А как сюда добавить условие?

Например нужно наименьшее значение из тех элементов у которых can_upgrade: True.

Я читал Учебники про python, только давненько. Потом начал писать на C#, а теперь вот опять python понадобился.

И эта задача на один денек, неужели мне нужно опять перечитывать литературу, чтобы решить данный вопрос…
Singularity
Seganapa
min(jsonobj[key]['pop_tear_down'] for key in jsonobj if key == 'key')
min(jsonobj[key]['pop_tear_down'] for key in jsonobj if jsonobj[key]['pop_tear_down'] < 0 )
acc = 0
for key in jsonobj:
    if jsonobj['pop_tear_down'] > 0 :
        acc +=1
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB