Python 检查是否所有字典都包含具有特定值的特定键
我需要深入查看Python 检查是否所有字典都包含具有特定值的特定键,python,dictionary,Python,Dictionary,我需要深入查看0,1,2的['labels\u detected\u summary'],以确定它们的['is\u mode\u一致]键是否都是真的 我知道all()函数将有助于检查最后的值,但我是否应该使用键、val方法或某种方法来访问这些单独的字典。get或iteritems() 编辑:看,这是我现在的SO问题。我知道我没有“发布我的代码”,但我也知道,人们会从黑客的不同方面得到乐趣,我会学到一些东西。我不会考虑使用键访问迭代器。这是一个值得否决的好帖子 视情况而定,如果您确定所有钥匙都会出
0,1,2
的['labels\u detected\u summary']
,以确定它们的['is\u mode\u一致]
键是否都是真的
我知道all()
函数将有助于检查最后的值,但我是否应该使用键、val
方法或某种方法来访问这些单独的字典。get
或iteritems()
编辑:看,这是我现在的SO问题。我知道我没有“发布我的代码”,但我也知道,人们会从黑客的不同方面得到乐趣,我会学到一些东西。我不会考虑使用键访问迭代器。这是一个值得否决的好帖子 视情况而定,如果您确定所有钥匙都会出现,您可以执行以下操作:
全部(
数据['payload']中x的x['labels\u detected\u summary']['is\u mode\u Conferenced']值()
)
如果数据可能不完整,您可以使用.get(key,default)
,这样当它找不到它时就不会引发KeyError
:
全部(
x、 get('labels_detected_summary',{}).get('is_mode_consential',False)用于数据中的x.get('payload',{}).values()
)
但是我应该使用key、val方法或某种.get或iteritems()循环来访问这些单独的字典吗?@AMC是的,只是在谷歌上搜索一下使用内置字典方法的正确方法all
函数本身通常与生成器表达式一起使用,后者进行迭代;该表达式的第一部分只需要检查当前词典是否在正确的位置有“True”。您可以使用正则方括号表示法-d['labels\u detected\u summary']['is\u mode\u consential']
起作用,其中d
是您的迭代变量。@HashRocketSyntax您可以忽略==True
。如果您曾经必须测试这样的东西是否为真,那么应该使用is True
,而不是==
,==True
对于布尔值来说是多余的,但是您需要将其作为生成器表达式-。。。例如,对于payload.values()中的d。我建议寻找有关all()
函数的教程或参考资料。
"payload": {
"0": {
"labels_detected_summary": {"comm_mode": str, "is_mode_unanimous": bool, "is_mode_match_pred": bool},
"labels_detected": {
...
}
},
"1": {
"labels_detected_summary": {"comm_mode": str, "is_mode_unanimous": bool, "is_mode_match_pred": bool},
"labels_detected": {
...
}
},
"2": {
"labels_detected_summary": {"comm_mode": str, "is_mode_unanimous": bool, "is_mode_match_pred": bool},
"labels_detected": {
...
}
}
}
}