从字典中选择具有特定 key:value 对的对象

Selecting objects with specific key:value pair from dictionary

我想选择字典中具有特定 key:value 对的所有对象。

例如:如果我想要来自以下字典的“key”对:“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'}}