我使用的API会将此文本返回给我:
HTTP/1.1 0 nullContent-Type: application/json;charset=UTF-8
Date: Thu, 02 Nov 2017 10:48:39 GMT
Connection: close
{"codigoRetorno":104,"mensajeRetorno":"ENVIO DUPLICADO, ENCONTRADO MISMO NUMERO DE ENVIO CON FECHA:02/11/2017","datosResultado":null,"listaBultos":null,"etiqueta":null}
我使用"请求"使用此API:
headers = {'Content-type': 'application/json'}
result = requests.post(
url, data=data,
auth=HTTPBasicAuth(username, password),
headers=headers, verify=False)
result_content = json.loads(result.content)
但是当我尝试将响应格式化为JSON时,它会给我这个错误: " ValueError:没有JSON对象可以被解码"
我猜问题是答案是文字。什么是解决这个问题的最佳方法。我想过使用正则表达式,但也许有另一种方法。
答案 0 :(得分:2)
请求中有一个内置的JSON解码器。使用result.json()
可能会有更多的运气答案 1 :(得分:1)
我不确定是否有更好的方法,但你总是可以使用正则表达式。
import json
def get_json_from_string(string):
json_string = re.search("{(.*?)}$", string).group(0)
return json.loads(json.dumps(json_string))