Как из словаря получить значение заданного ключа?
Каким образом можно получить отсюда amount?
{'accounts': [{'alias': 'qw_wallet_rub', 'fsAlias': 'qb_wallet',
'bankAlias': 'QIWI', 'title': 'Qiwi Account',
'type': {'id': 'WALLET', 'title': 'Visa QIWI Wallet'},
'hasBalance': True, 'balance': {'amount': 16.71, 'currency': 643},
'currency': 643, 'defaultAccount': True}]}
Ответы (2 шт):
Автор решения: Jack_oS
→ Ссылка
my_dict = {'accounts': [{'alias': 'qw_wallet_rub', 'fsAlias': 'qb_wallet', 'bankAlias': 'QIWI', 'title': 'Qiwi Account', 'type': {'id': 'WALLET', 'title': 'Visa QIWI Wallet'}, 'hasBalance': True, 'balance': {'amount': 16.71, 'currency': 643}, 'currency': 643, 'defaultAccount': True}]}
>>> my_dict['accounts'][0]['balance']['amount']
16.71
Все ключи словаря:
>>> my_dict.keys()
dict_keys(['accounts'])
Тип и размер:
>>> type(my_dict['accounts'])
<class 'list'>
>>> len(my_dict['accounts'])
1
И так далее:
>>> my_dict['accounts'][0].keys()
dict_keys(['alias', 'fsAlias', 'bankAlias', 'title', 'type', 'hasBalance', 'balance', 'currency', 'defaultAccount'])
>>> my_dict['accounts'][0]['balance']
{'amount': 16.71, 'currency': 643}
Автор решения: MaxU
→ Ссылка
Можно также воспользоваться удобным модулем dpath, который позволяет "общаться" со словарями используя пути как в xpath:
import dpath.util as dpu # pip install dpath
In [18]: dpu.values(data, "/accounts/**/amount")
Out[18]: [16.71]
In [19]: dpu.search(data, "/accounts/**/amount")
Out[19]: {'accounts': [{'balance': {'amount': 16.71}}]}