如何解决这个"Expecting value: line 1 column 1 (char 0)"?



请求方法:PATCH

有一个查询字符串参数部分

您的代码无法运行以重现错误。在这里查看您得到的回复:

r = requests.patch(url, headers=self._construct_header(),data=body)
response = getattr(r,'_content').decode("utf-8")
response_json = json.loads(response)

如果将无效的json传递给json.loads((,则会出现类似消息的错误。

import json
response = b'test data'.decode("utf-8")
print(response)
response_json = json.loads(response)
print(response_json)

输出:

test data
Traceback (most recent call last):
...
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

编辑:

在您的情况下,为了避免出现错误,您需要添加一个if-else块。收到回复后,你需要检查一下你到底收到了什么。

r = requests.patch(url, headers=self._construct_header(),data=body)
# if necessary, check content type
print(r.headers['Content-Type'])
response = getattr(r,'_content').decode("utf-8")
if r.status_code == requests.codes.ok:
# make sure you get the string "success"
# if necessary, do something with the string
return response
else:
# if necessary, check what error you have: client or server errors, etc.
# or throw an exception to indicate that something went wrong
# if necessary, make sure you get the error in json format
# you may also get an error if the json is not valid
# since your api returns json formatted error message:
response_dict = json.loads(response)

return response_dict

在这些情况下,函数返回字符串";成功;或带有错误描述的dict。

用法:


data = { 
'correct_prediction': 'funny',
'is_accurate': 'False',
'newLabel': 'funny',
} 
response = aiservice.update_prediction(data)
if isinstance(response, str):
print('New Prediction Status: ', response)
else:
# provide error information
# you can extract error description from dict

相关内容

  • 没有找到相关文章

最新更新