Доступ к вложенным словарным значениям, соответствующим условию - PullRequest
0 голосов
/ 11 февраля 2019

То, что я пытаюсь сделать, - это перебирать этот словарь и извлекать только те ключи, в которых есть «RM» (включая их значение).

Я пробовал такие вещи, как:

for key, val in release_dict["packages"].items():
        for k, v in val.items():
            print(item for item in v["linked_jiras"] if "RM" in item)

без особой удачи.

Я застрял здесь

{
    "packages": {
        "company-web-package-name": {
            "linked_jiras": {
                "RM-2048": "info we want",
                "RM-2087": "info we want",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
            },
            "branch": "master",
            "project_lead": "person"
        },
        "company-web-package": {
            "linked_jiras": {
                "RM-1880": "info we want",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
            },
            "branch": "master",
            "project_lead": "person"
        },
        "company-web-package--internal": {
            "linked_jiras": {
                "RM-2049": "info we want",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
                "item": "description",
            },
            "branch": "master",
            "project_lead": "person"
        }
    }
}

Я пытаюсьлибо получить новый словарь этих результатов, либо, проще, кортеж этих значений.

1 Ответ

0 голосов
/ 11 февраля 2019

Вам нужно немного переупорядочить свои циклы и добавить в выходной словарь, чтобы получить всю информацию:

d = {}

for key, val in release_dict["packages"].items():
    for item in val["linked_jiras"]:
        if "RM" in item:
            d[item] = val["linked_jiras"][item]

print(d)
# {'RM-2048': 'info we want', 'RM-2087': 'info we want', 'RM-1880': 'info we want', 'RM-2049': 'info we want'}

Примечание : убедитесь, что при использованиисловари, все 'RM' ключи различны.

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