Итерация вложенных словарей Python

Я пытаюсь собрать информацию из вложенных словарей (загруженных из json). Я пытаюсь сделать это с for loop. Мне не удалось получить словарь внутри словаря, который называется "игроки". "игроки" содержит словарь с именами игроков и их идентификаторы. Я хотел бы извлечь этот словарь. Вы можете найти мой код и пример данных ниже.

я смог перебрать первый уровень в словарь, но я не могу отфильтровать более глубокие уровни.

Я просматривая другие подобные вопросы, но они решали разные вопросы итерации словаря. Я не мог использовать их для своих целей. Я думал об извлечении информации, которая мне нужна, используя данные.keys () ["players"], но я не могу справиться с этим на данный момент.

for key, value in dct.iteritems():
    if value == "players":
        for key, value in dct.iteritems():
            print key, value

образец моих данных:

{
"[CA1]": {
    "team_tag": "[CA1]",
    "team_name": "CzechAir",
    "team_captain": "MatejCzE",
    "players": {
        "PeatCZ": "",
        "MartyJameson": "",
        "MidnightMaximus": "",
        "vlak_in": "",
        "DareD3v1l": "",
        "Hugozhor78": ""
    }
},
"[GWDYC]": {
    "team_tag": "[GWDYC]",
    "team_name": "Guys Who Dated Your Cousin",
    "team_captain": "Teky1792",
    "players": {
        "wondy22": "",
        "dzavo1221": "",
        "Oremuss": "",
        "Straker741": "",
        "Vasek9266": ""
    }
}
}

2 ответов


каждого value во внешнем цикле сам словарь:

for key, value in dct.iteritems():
    if 'players' in value:
        for name, player in value['players'].iteritems():
            print name, player

здесь, вы сначала проверить, если players ключ фактически присутствует во вложенном словаре, тогда, если это так, повторите все ключи и значения players значением, снова словарь.


for team in myData:
    for player,id in myData[team]['players'].iteritems():
        print "player %s has ID '%s'" %(player, id)