Python 3.x 如何读取django中第三方应用程序引发的异常的内容?

Python 3.x 如何读取django中第三方应用程序引发的异常的内容?,python-3.x,django,exception,django-models,django-rest-framework,Python 3.x,Django,Exception,Django Models,Django Rest Framework,在某种情况下需要帮助。我已向第三方应用程序发出请求,该应用程序引发异常,因此我想阅读此异常的消息 exceptions.AlreadyExistError : Reason = Entered bank Account is already registered:: response = {"status": "ERROR", "subCode": "409", "message": "

在某种情况下需要帮助。我已向第三方应用程序发出请求,该应用程序引发异常,因此我想阅读此异常的消息

exceptions.AlreadyExistError : Reason = Entered bank Account is already registered:: response = {"status": "ERROR", "subCode": "409", "message": "Entered bank Account is already registered"} request_id  = fdd54b5c25c73cc3d437188278b0be26



try:
        add_beneficiary = Beneficiary.add( bankAccount=order.payee_bank_account_number)
 
    except Exception as e:
        print(e) #Reason = Entered bank Account is already registered:: response = {"status": 
                  "ERROR", "subCode": "409", "message": "Entered bank Account is already registered"} 
                   request_id  = c57d9df21bd413d9a46eaec82a590e9b

如何读取异常消息基于您最后的评论,您可以使用正则表达式匹配json格式的响应,然后解析它以获取消息

exceptions.AlreadyExistError : Reason = Entered bank Account is already registered:: response = {"status": "ERROR", "subCode": "409", "message": "Entered bank Account is already registered"} request_id  = fdd54b5c25c73cc3d437188278b0be26



try:
        add_beneficiary = Beneficiary.add( bankAccount=order.payee_bank_account_number)
 
    except Exception as e:
        print(e) #Reason = Entered bank Account is already registered:: response = {"status": 
                  "ERROR", "subCode": "409", "message": "Entered bank Account is already registered"} 
                   request_id  = c57d9df21bd413d9a46eaec82a590e9b
import re, json

exception = str(e)
result = json.loads('{' + re.search('{(.*)}', exception).group(1) + '}')
message = result['message']
print(message)
输出


>输入的银行帐户已注册

只需删除该帐户,然后尝试获取错误的完整堆栈跟踪。除异常外,将异常捕获为e也不是一种好的做法,因为可能会发生许多不同的错误,但您可以捕获所有错误。
print(str(e))
将打印异常message@AbdulAzizBarkat实际上,我需要捕捉错误,因为在此基础上,我必须在块中执行除块之外的其他任务,所以我只想提取一些如何进行比较的信息。@AmineMessaoudi我已经尝试过了,但它正在打印我在问题中提到的内容。@AmitYadav您正在尝试获取请求id的值吗?非常感谢@AmineMessaoudi它工作得非常好。@AmitYadav不客气:)