web2py 将存储对象转换为字符串



我在web2py中有一些RESTful API调用,它们接受JSON文件。我使用 curl 通过命令行进行调用,如下所示:

curl -H "Content-Type: application/json" --data @mydata.json https://mywebsite/doWork

在我的web2py控制器中,我设置了它以读取POST请求。当我通过返回来检查request.vars时,它包含完整的JSON数据,但request.vars的类型是:类'gluon.storage.Storage'。

我需要控制器中字符串格式的数据。但是,如果我做str(request.vars(,web2py会在我的数据前面附加一个存储标签。

@request.restful()
def doWork():
def POST(*args, **vars):
return(request.vars)
return locals()

假设 mydata.json 文件很简单,如下所示:

{ "键":"值" }

对 POST 的请求将返回 {"key": "value"} 作为 gluon.storage.Storage 对象。

如果我将行 return(request.vars( 更改为 return(str(request.vars((,则输出现在为:

如何将此 request.vars 转换为字符串,而无需将存储标记附加到前面,并将双引号更改为单引号?

如果你想vars转换回JSON,你可以使用Pythonjson库或只使用response.json

return response.json(vars)

或者,您可以将.json扩展添加到请求中,并直接返回vars

return vars

提出以下要求:

curl -H "Content-Type: application/json" --data @mydata.json https://mywebsite/doWork.json

在这种情况下,web2py 会自动将响应转换为 JSON。

最新更新