Python. Работа со словарём. Индексы
Делаю запрос на сервер (session.slovar), в ответ получаю словарь с несколькими индексами ([0] ; [1] ; [2]...) формата
{'key1':'1':{'key2':'2':[{'symbol':'sym1'},{'symbol':'bol2'}]}'key3'}
Достаю значение первого индекса [0]:
odno = slovar['key1']['key2'][0]['symbol']
print(odno) # sym1
Достаю значение второго индекса [1]:
drugoe = slovar['key1']['key2'][1]['symbol']
print(drugoe) # bol2
Вопрос:
Как сгруппировать значения ключа 'symbol' из всех индексов в один словарь, чтобы в дальнейшем получить одним словарём sym1 и bol2.
Ответы (2 шт):
Автор решения: iivan ych
→ Ссылка
Вот решение:
все_значения = [list(i.values())[0] for i in slovar['key1']['key2']]
Мы просто берем i
для каждого i
-того элемента в ключе-массиве у key2
.
Вот пример:
# словарь, ну или dict
a = {'key1':{'key2':[{'sym1':'foo'}, {'sym2': 'bar'}]}}
# выводим ['foo', 'bar']
print([list(i.values())[0] for i in a['key1']['key2']])
Автор решения: Александр Вячеславович
→ Ссылка
На будущее, возможно кому-то пригодится.
Подсказал решение задачи: @iivan-ych
a = [list(i.values())[0] for i in a['key1']['key2']])
Если вам необходимо избавиться от квадратных скобок в ответе:
print(' '.join(a)) # - меняем class 'list' на class 'str'. Получаем значения через пробел.