我有一个带有这个端点的Flask API:
@app.route('/classify/', methods=['POST'])
def classify():
data = request.get_json()
当我用python发布一个请求时,一切都很好。
但是当我使用Postman时,我得到:
<class 'werkzeug.exceptions.BadRequest'> : 400: Bad Request
我用这两种方法发送了相同的JSON(我复制/粘贴它以确保)。我相当确信这个问题是由我的JSON中的一些“\t”引起的,这些“\t”是由Python转义的,而不是由Postman转义的。
有没有一种方法可以获取原始的json,并在应用程序中处理它(转义需要转义的内容)?或者有其他方法可以获取json?
编辑:这是一个不同的问题,从一个你建议作为重复,因为你建议使用get_json,这是在我的情况下的问题。
4条答案
按热度按时间lhcgjxsq1#
好的,你可以替换:
data = request.get_json(
)执行人:
requests.data 包含字符串格式的json,因此您可以处理需要转义的字符。
7uhlpewt2#
如果你的数据可能是空的,或者会引发一个错误的请求,请使用
request.data
而不是request.get_json()
!bxgwgixi3#
如果你收到
400 Bad Request
或failed to decode json object: expecting value: line 1 column 1 (char 0)
,可能是因为你没有用json发送。首先验证您使用
return request.data
获取请求。在postman中检查Content-disposition
是否在json中。或者,使用print(request.is_json)
。在Postman中使用
request.get_json
时,请确保将JSON作为raw
请求发送。See this image, make sure to select raw and JSON from the dropdown in the bodyinb24sb24#
所有关于 AJAX 和flask从python文件模板发送数据的错误。
接收 AJAX json的所有数据。