访问与条件匹配的嵌套字典值
Accessing nested dictionary values matching a condition
我想做的是遍历这本字典,只抓取其中包含 "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'
键都是不同的。
我想做的是遍历这本字典,只抓取其中包含 "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'
键都是不同的。