我有一个场景,我需要检查下面 json 中的条件是否满足,然后执行某些操作。 这是我的json data
这是我要继续进行的条件:
循环遍历 json 并查找 active
的值,如果 active
true
然后在同一父数组下查找 cls
type 如果类型为 alpha1
,则返回 eces
值(在本例中为 260551)test_CHECK
值。
如果在循环 json 后,active
的值不为 true,或者 active
的值为 true,但在 cls
下的同一父数组中> 类型不是 alpha1 然后打印 not found
这是我尝试过的,但它似乎没有进入循环。
for key in metadata:
ev=key['eces']
if key['active'] == 'true' and 'alpha1' in key['type']:
print(ev, key['test_CHECK'])
else:
print("not found")
我看到的挑战是在循环整个 json 时验证同一对象下的 type = alpha1
和 active = true
。
任何有关如何继续此处的帮助都会非常有用。
最佳答案
"cls": [
{
"c_id": 268897,
"c_Address": {
"test_CHECK": "passty",
"testgama_URL": "https://testgama.com"
},
"address": "{world.com}",
"name": "alpha",
"type": "alpha1"
}
]
数据在cls
和ops问题中是不同的,test_CHECK
字段是c_Address
字典的一部分,所以如果我们使用该约定,那么我们可以使用两个 for 循环找到所需的值。一个 for 循环将在外部列表上迭代,另一个 for 循环将在 cls 列表上迭代。
found = False
for di in d:
if di.get('active', False):
for cl in di.get('cls', []):
if cl.get('type') == 'alpha1':
print(di['eces'], cl['c_Address']['test_CHECK'])
found = True
if not found:
print("Not found")
关于python - python中的嵌套if条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59491854/