2017-07-14 53 views
0

在我的Python代碼,我捕捉特定異常特定值/字符串中使用您在Python異常的ARGS

except requests.HTTPError as ex: 

印刷ex.args顯示以下數據

{"code":400,"status":"Bad Request","timestamp":"2017-07-14T12:42:41+05:30", 
"message":"Can not cancel order - 123123123123123", 
"error":{"name":"Error","reason":"Can not cancel order - 170714000048253"}} 

是這個前.args一些字典或字符串?一旦引發異常,我想檢查代碼和消息等特定值。我如何以最佳方式做到這一點?

回答

1

ex.args返回元組的錯誤JSON,你可以分析它,並使用這樣的:

import json 

data = json.loads(ex.args[0]) 

print(data['code']) 
+0

我得到了一個錯誤json.loads '回溯(最近通話最後一個): errorJson = json.loads (ex.args) 文件「C:\ Python35-32 \ lib \ json \ __ init__.py」,第312行,載入中 s .__ class __.__ name__)) TypeError:JSON對象必須是str,而不是'tuple '' –

+1

如果'ex.args'返回元組,則必須從您在問題中發佈的元組中獲取字符串消息。 –

+0

是的。它是一個元組,並從中提取出json。謝謝。你能編輯你的第一個答案,以便我可以將其復原嗎? –