цикл по списку словарей python - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь получить доступ к словарю в списке и не могу получить цикл for для получения ключа, а затем значения.

Я разместил здесь изображение, чтобы его было легко объяснить.

enter image description here

чтобы вы могли видеть, я хотел бы перейти к currency = AUD и присвоить значение баланса переменной, назвать его aud_balance

for curr in result_bal_qr:
    for k in curr: 
        if curr[k] == 'AUD':

Кажется, я не могу получить ключ AUD. так что я официально застрял.

Я пытался найти словарь внутри списков и т. Д., Но не нашел примеров своей проблемы или, возможно, даже неправильно понял мою проблему (весьма вероятно)

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы можете сделать с list Comprehension

aud_balance = [d['balance'] for d in l if d['currency'] == 'AUD']
0 голосов
/ 28 июня 2018

У вас есть список диктов. Вы хотите выполнять итерацию по списку, как вы делаете, но вы не хотите выполнять итерацию по каждому диктовку; Вы просто хотите проверить его ключ currency. Итак:

for curr in result_bal_qrp:
    if curr['currency'] == 'AUD':
        print(curr['balance'])

Обратите внимание: если вы собираетесь повторять этот список несколько раз, чтобы найти разные валюты, возможно, стоит преобразовать его в простое требование валюты для баланса:

curr_dict = {d['currency']: d['balance'] for d in result_bal_qrp}

и теперь вы можете сделать curr_dict['AUD'], чтобы получить австралийский баланс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...