[英]How to assert data in a JSON array with Python
我正在尝试自动化一些 API 端点,但 JSON 响应是一个数据数组。 我如何断言特定用户及其在 JSON 数组中的所有数据?
我正在尝试:
assert {
"user": "test1",
"userName": "John Berner",
"userid": "1"
} in response.json()
JSON 响应是:
{
"data": [
{
"user": "test1",
"userName": "John Berner",
"userid": "1"
},
{
"user": "test2",
"userName": "Nick Morris",
"userid": "2"
}
],
"metadata": {
"current_page": 1,
"pages": 1,
"per_page": 100,
"total": 2
}
}
请这样尝试:您可以使用循环遍历 any 中的data
来执行此检查。
contents = json.loads(apiresponse_data)
assert any(i['user'] == 'test1' for i in contents['data'])
如果响应中的所有字段都是你的user_info
的一部分,你可以做你想做的事 -
# response = json.loads(api_response_data)
response = {
"data": [
{
"user": "test1",
"userName": "John Berner",
"userid": "1"
},
{
"user": "test2",
"userName": "Nick Morris",
"userid": "2"
}
],
"metadata": {
"current_page": 1,
"pages": 1,
"per_page": 100,
"total": 2
}
}
user_info = {
"user": "test1",
"userName": "John Berner",
"userid": "1"
}
assert user_info in response['data']
上面没有引发AssertionError
因为user_info
在response['data']
中
如果您已经解码了 json 响应,您也可以使用以下内容 -
assert {
"user": "test1",
"userName": "John Berner",
"userid": "1"
} in response['data']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.