检查有序字典中是否存在值

2024-06-16 12:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python变量snapshot中得到一个有序字典。如何检查字典中是否存在值'Operator'

OrderedDict([('1111', {'location': 'Nakuru', 'uid': '1111'}), ('lkhsdfalsdkfh', {'designation': 'Operator', 'id': 2, 'location': 'Kisii', 'mobile': '0722112889', 'name': 'Njeri', 'uid': '2222'})])

我试图使用

if thepassword in snapshot.values():

但这似乎没有给我正确的输出


Tags: nameiduid字典snapshotlocationmobileoperator
2条回答

Operator是一个嵌套的字典中的值。通过检查in snapshot.values()可以检查它是否是键之一。您必须执行以下操作:

for d in snapshot.values():
    if thepassword in d.values():
        ...

如果不需要知道值在snapshot中的位置,而只需要知道它确实存在,那么给出的第一个答案就可以了。此代码返回一个元组,其中包含遍历到要查找的值所需的两个键:

keys = None
for okey, oval in snapshot.items():
    revDict = dict((v, k) for k, v in oval.items())
    if 'Operator' in revDict:
        keys = (okey, revDict['Operator'])
        break
print(keys)

结果:

('lkhsdfalsdkfh', 'designation')

相关问题 更多 >