python response.json()报错_python:解析requests返回的response(json格式)

importrequests, json

r= requests.get('http://192.168.207.160:9000/api/qualitygates/project_status?projectId=%s' %(p_uuid) )

state=json.loads(r.text).get('projectStatus').get('status')

返回如下:

{

"projectStatus": {

"status": "ERROR",

"conditions": [{

"status": "ERROR",

"metricKey": "new_security_rating",

"comparator": "GT",

"periodIndex": 1,

"errorThreshold": "1",

"actualValue": "5"

}, {

"status": "ERROR",

"metricKey": "new_reliability_rating",

"comparator": "GT",

"periodIndex": 1,

"errorThreshold": "1",

"actualValue": "4"

}, {

"status": "OK",

"metricKey": "new_maintainability_rating",

"comparator": "GT",

"periodIndex": 1,

"errorThreshold": "1",

"actualValue": "1"

}, {

"status": "ERROR",

"metricKey": "new_coverage",

"comparator": "LT",

"periodIndex": 1,

"errorThreshold": "80",

"actualValue": "0.0"

}, {

"status": "ERROR",

"metricKey": "new_duplicated_lines_density",

"comparator": "GT",

"periodIndex": 1,

"errorThreshold": "3",

"actualValue": "5.967688757006265"

}],

"periods": [{

"index": 1,

"mode": "previous_version",

"date": "2019-05-31T09:35:58+0800"

}],

"ignoredConditions": false

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用`response.json()`方法解析请求返回的响应数据时,如果响应数据不是合法的JSON数据格式,则会出现`JSONDecodeError`异常。这种情况通常发生在服务器返回的响应数据不是JSON格式数据时,或者在网络传输过程中出现了数据损坏等问题。 为了解决这个问题,您可以使用`try except`语句来捕获异常,并在出现异常时进行相应的处理。以下是一个示例代码,用于捕获`JSONDecodeError`异常并记录日志: ```python from locust import HttpUser, task, between import json import logging class MyUser(HttpUser): wait_time = between(1, 2.5) @task def post_request(self): headers = { "Authorization": "Bearer your_token", "Content-Type": "application/json" } data = { "key": "value" } response = self.client.post("/your-post-endpoint", headers=headers, json=data) # 断言请求返回的状态码是否为200 assert response.status_code == 200 # 解析请求返回JSON格式数据 try: response_data = response.json() except json.JSONDecodeError: # 记录日志并忽略该请求 logging.error("Failed to parse response data as JSON: %s", response.text) return # 断言请求返回JSON格式数据中是否包含了指定的键值对 assert "result" in response_data assert response_data["result"] == "success" ``` 在上面的示例代码中,我们使用`try except`语句来捕获`JSONDecodeError`异常。如果出现异常,则记录日志并忽略该请求。否则,我们继续使用`assert`语句断言请求返回JSON格式数据是否符合预期。 通过这种方式,您可以避免由于响应数据不是合法的JSON格式数据而导致测试失败的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值