从字典中选择具有特定键:值对的对象



我想在字典中挑选所有具有特定键:值对的对象。

例如:如果我想要对";键":"x〃;来自以下词典:

mydictionary =
"1" : {
"key" : "x",
"key2" : "b",
},
"2" : {
"key" : "y",
"key2" : "b",
},
"3" : {
"key" : "y",
"key2" : "a",
},
"4" : {
"key" : "x",
"key2" : "b",
}

输出将是对象";1〃;以及";4〃;。

这可能是一个重复的问题,但尽管进行了搜索,我还是找不到类似的问题。

这样的东西?

[k for k, v in mydictionary.items() if v['key'] == 'x']

您需要用{}将字典括起来

In [164]: mydictionary
Out[164]:
{'1': {'key': 'x', 'key2': 'b'},
'2': {'key': 'y', 'key2': 'b'},
'3': {'key': 'y', 'key2': 'a'},
'4': {'key': 'x', 'key2': 'b'}}
In [165]: {i:mydictionary[i] for i in mydictionary if mydictionary[i]["key"] == "x"}
Out[165]: {'1': {'key': 'x', 'key2': 'b'}, '4': {'key': 'x', 'key2': 'b'}}