Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解决这个问题;期望值:第1行第1列(字符0)“;?_Python_Api_Python Requests_Patch - Fatal编程技术网

Python 如何解决这个问题;期望值:第1行第1列(字符0)“;?

Python 如何解决这个问题;期望值:第1行第1列(字符0)“;?,python,api,python-requests,patch,Python,Api,Python Requests,Patch,这是我在aimlflow库中创建的函数 这里,self.\u staging\u url= 我称之为test.py data = { 'correct_prediction': 'funny', 'is_accurate': 'False', 'newLabel': 'funny', } response = aiservice.update_prediction(data) print('New Prediction Status: ', response )

这是我在aimlflow库中创建的函数 这里,self.\u staging\u url=

我称之为test.py

data = { 
    'correct_prediction': 'funny',
    'is_accurate': 'False',
    'newLabel': 'funny',
} 
response = aiservice.update_prediction(data)
print('New Prediction Status: ', response  )
然后给出如下结果

    "Expecting value: line 1 column 1 (char 0)"
    New Prediction Status:  Expecting value: line 1 column 1 (char 0)
请求URL:

请求方法:补丁

这是请求负载

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


如何打印此响应而不出错?

无法运行代码来重现错误。请在此处查看您作为a获得的信息:

r=requests.patch(url,headers=self.\u construct\u header(),data=body)
响应=getattr(r,“u内容”)。解码(“utf-8”)
response_json=json.load(响应)
如果将无效的json传递给,则会出现类似的错误消息

导入json
响应=b‘测试数据’。解码(“utf-8”)
打印(答复)
response_json=json.load(响应)
打印(响应\u 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.\u construct\u header(),data=body)
#如有必要,请检查内容类型
打印(r.headers['Content-Type'])
响应=getattr(r,“u内容”)。解码(“utf-8”)
如果r.status_code==requests.codes.ok:
#确保获得字符串“success”
#如有必要,用绳子做些什么
返回响应
其他:
#如有必要,检查您的错误:客户端或服务器错误等。
#或者抛出一个异常以指示出现了问题
#如有必要,请确保以json格式获取错误
#如果json无效,也可能会出现错误
#由于api返回json格式的错误消息:
response\u dict=json.load(响应)
返回响应命令
在这些情况下,函数返回字符串“success”或带有错误描述的dict

用法:


数据={
“正确的预测”:“有趣”,
“是否准确”:“错误”,
“新标签”:“有趣”,
} 
响应=aiservice.update\u预测(数据)
如果存在(响应,str):
打印('新预测状态:',响应)
其他:
#提供错误信息
#您可以从dict中提取错误描述

@furus您能检查一下吗?这能回答您的问题吗@8349697我试过了,但是我的问题没有通过这个解决是的,我已经发布了测试框架的一部分。因此它无法再现错误。你看到我的代码中有任何不正确的行吗?@ShelomiPriskila你希望得到什么样的响应?如果只有“成功”一行,只需解码并打印即可。不需要使用json.loads()。如果响应应该包含某种json,那是另一个问题。@ShelomiPriskila从API中至少可以得到两种类型的响应。1) 成功回复200。2) json格式的错误消息(例如状态403)。考虑如何打印。是的,我需要打印成功。有一个查询字符串参数作为predictionId。我怎样才能把这个加到身体里?
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)