我正在尝试检查dict中是否存在嵌套键:
例如:
x = [{
'11': {
0: [{'bb_id': '122',
'cc_id': '4343'}],
1: [{'bb_id': '4334',
'cc_id': '3443'},
{'bb_id': '5345',
'cc_id': '257'}]
}
}]
检查11
的密钥中是否存在x
,并进一步检查0
中的11
是否存在。
我尝试做,
print(any(0 in d for d in x if '11' in d))
答案 0 :(得分:1)
您拥有的是一列字典,其中包含值作为字典列表的一列。
尝试这种单行列表理解。 x
以下是字典的列表(在这种情况下为单个字典)。如果x
和'11' exists in its key
,则下面的代码对0 exists in the key of value of '11'
中的每个字典返回True。只有同时满足两个条件,您才能获得TRUE
否则FALSE
-
True
,否则返回False
#Items to detect
a = '11'
b = 0
#Iterate of the nested dictionaries and check conditions
result = [(k==a and b in v.keys()) for i in x for k,v in i.items()]
print(result)
[True]
答案 1 :(得分:1)
看来这可以实现您想要做的事情:
print(['11' in d.keys() and 0 in d['11'].keys() for d in x])
说明:
True
;否则,打印False
答案 2 :(得分:0)
原始方法可能只是一个if条件:
if '11' in x[0]:
print("11 in x")
if 0 in x[0]['11']:
print("0 in 11")
您还可以使用for循环:
for d in x:
if '11' in d:
print("11 in d")
if any(d['11']) and 0 in d['11']:
print("0 in 11")
答案 3 :(得分:0)
has_key = lambda key, _dict: re.search("{%s" % str(key), str(_dict).replace(" ", ""))