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'. Получаем значения через пробел.
→ Ссылка