Python 访问与条件匹配的嵌套字典值

Python 访问与条件匹配的嵌套字典值,python,python-3.x,dictionary,iterator,lookup,Python,Python 3.x,Dictionary,Iterator,Lookup,我要做的是遍历这个字典,只找出其中包含“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

我要做的是遍历这个字典,只找出其中包含“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"
        }
    }
}

我正在尝试获取这些结果的新字典,或者更简单地说,获取这些值的元组

您需要对循环稍微重新排序,并添加到输出字典中以获取所有信息:

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'
键都是不同的。

您需要稍微重新排序循环,并添加到输出字典以获取所有信息:

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'
键都是不同的。

这太好了,谢谢。如果我把它改为“我只想抓住项目负责人的名字”,那会变得更复杂一些,对吗?@NathanPhillips,那应该是
val['project\u lead']
。感谢一切:)太好了,谢谢。如果我把它改为“我只想抓住项目负责人的名字”,那会变得更复杂一些,对吗?@NathanPhillips,那应该是
val['project\u lead']
。感谢一切:)