使用 pytest 断言值是否存在于 json 数组的任何位置
Assert if value is present in any position of json array using pytest
我有一个 json 数组,如下所示:
{
"employees":[
{
"name":"Shyam",
"email":"shyamjaiswal@gmail.com"
},
{
"name":"Bob",
"email":"bob32@gmail.com"
},
{
"name":"Jai",
"email":"jai87@gmail.com"
}
]
}
当我确定值 'Bob' 会出现在某个位置(例如位置 2)时,我可以使用 :
断言
assert json.loads(data)["employees"][2] == "Bob"
但是,在我的例子中,值 'Bob' 可以在数组的任何位置。在这种情况下,如果键 'name' 和值 'Bob' 出现在 json 数组
的任何位置,我该如何断言
您可以在 any
中对 employees
使用循环来执行此检查。
contents = json.loads(data)
assert any(i['name'] == 'Bob' for i in contents['employees'])
我有一个 json 数组,如下所示:
{
"employees":[
{
"name":"Shyam",
"email":"shyamjaiswal@gmail.com"
},
{
"name":"Bob",
"email":"bob32@gmail.com"
},
{
"name":"Jai",
"email":"jai87@gmail.com"
}
]
}
当我确定值 'Bob' 会出现在某个位置(例如位置 2)时,我可以使用 :
断言
assert json.loads(data)["employees"][2] == "Bob"
但是,在我的例子中,值 'Bob' 可以在数组的任何位置。在这种情况下,如果键 'name' 和值 'Bob' 出现在 json 数组
的任何位置,我该如何断言您可以在 any
中对 employees
使用循环来执行此检查。
contents = json.loads(data)
assert any(i['name'] == 'Bob' for i in contents['employees'])