result={"message":"Error logging in for user sana123@gmail.com","status":"Error: [Errno 400 Client Error: Bad Request for url: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=xxxx] {n "error": {n "code": 400,n "message": "EMAIL_NOT_FOUND",n "errors": [n {n
"message": "EMAIL_NOT_FOUND",n "domain": "global",n "reason": "invalid"n }n ]n }n}n"}
用于访问"message"键,我们将使用:
result['message']
但是我如何访问:
- "message"EMAIL_NOT_FOUND"
- "reason"invalid"
result["status"]
部分为Json编码消息。要解码它,首先去除Errno:
部分,然后使用json.loads
。例如:
import json
result = {
"message": "Error logging in for user sana123@gmail.com",
"status": 'Error: [Errno 400 Client Error: Bad Request for url: https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=xxxx] {n "error": {n "code": 400,n "message": "EMAIL_NOT_FOUND",n "errors": [n {n "message": "EMAIL_NOT_FOUND",n "domain": "global",n "reason": "invalid"n }n ]n }n}n',
}
data = json.loads("{" + result["status"].split("] {", maxsplit=1)[-1])
for error in data["error"]["errors"]:
print(error["message"])
print(error["reason"])
打印:
EMAIL_NOT_FOUND
invalid
result['message']
包含文本和JSON字符串,您首先需要提取JSON部分,然后解析字符串(使用本机库json
)。
import json
json_string = result['status'][result['status'].find('{'):]
data = json.loads(json_string)
那么data
将是下一个dict
。
{'error': {'code': 400,
'message': 'EMAIL_NOT_FOUND',
'errors': [{'message': 'EMAIL_NOT_FOUND',
'domain': 'global',
'reason': 'invalid'}]}}