0

当我尝试在圣杯中使用 app.current_request.json_body 时,出现解码错误:

回溯(最后一次调用):文件“/var/task/chalice/app.py”,第 659 行,在 _get_view_function_response response = view_function(**function_args) 文件“/var/task/app.py”,第 34 行,在 post_item 数据 = app.current_request.json_body 文件“/var/task/chalice/app.py”,第 303 行,在 json_body self._json_body = json.loads(self.raw_body) 文件“/var/lang/lib/python3 .6/json/ init .py",第 354 行,加载返回 _default_decoder.decode(s) 文件“/var/lang/lib/python3.6/json/decoder.py”,第 339 行,解码 obj,结束= self.raw_decode(s, idx=_w(s, 0).end()) File "/var/lang/lib/python3.6/json/decoder.py", line 357, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) 来自 None json.decoder。JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

数据有多简单并不重要。示例:{"Company":"ABC"} 或 {}。

从 API Gateway 中的以下代码可以看出,我所做的只是返回已发送的数据,所以我认为这不是问题所在:

@app.route('/test', methods=['POST'], content_types=['application/json'], cors=cors_config)
def post_item(data):
    data = app.current_request.json_body
    return data

有谁知道我可能做错了什么?

4

1 回答 1

2

您必须data从函数的参数中删除 。用于传递 url 参数。

@app.route('/test', methods=['POST'], content_types=['application/json'], cors=cors_config)
def post_item():
    data = app.current_request.json_body
    return data
于 2018-03-27T18:19:59.040 回答