web2py 将存储对象转换为字符串
web2py convert Storage object to string
我在 web2py 中有一些 RESTful API 调用接收 JSON 文件。我使用 curl 通过命令行进行调用,例如:
curl -H "Content-Type: application/json" --data @mydata.json https://mywebsite/doWork
在我的 web2py 控制器中,我将其设置为读取 POST 请求。当我通过 returning 检查 request.vars 时,它包含完整的 JSON 数据,但 request.vars 的类型为:class 'gluon.storage.Storage'。
我需要控制器中字符串格式的数据。但是,如果我执行 str(request.vars),web2py 会在我的数据前面附加一个 Storage 标签。
@request.restful()
def doWork():
def POST(*args, **vars):
return(request.vars)
return locals()
假设 mydata.json 文件很简单,例如:
{
"key": "value"
}
对 POST 的请求将 return {"key": "value"} 作为一个 gluon.storage.Storage 对象。
如果我将行 return(request.vars) 更改为 return(str(request.vars)) 现在输出为: < Storage {u'key' : u'值'}>
如何将此 request.vars 转换为字符串而不将存储标记附加到前面并将双引号更改为单引号?
如果您想将 vars
转换回 JSON,您可以使用 Python json
库或只使用 response.json
:
return response.json(vars)
或者,您可以将 .json
扩展名添加到请求中,然后直接 return vars
:
return vars
请求如下:
curl -H "Content-Type: application/json" --data @mydata.json https://mywebsite/doWork.json
在这种情况下,web2py 会自动将响应转换为 JSON。
我在 web2py 中有一些 RESTful API 调用接收 JSON 文件。我使用 curl 通过命令行进行调用,例如:
curl -H "Content-Type: application/json" --data @mydata.json https://mywebsite/doWork
在我的 web2py 控制器中,我将其设置为读取 POST 请求。当我通过 returning 检查 request.vars 时,它包含完整的 JSON 数据,但 request.vars 的类型为:class 'gluon.storage.Storage'。
我需要控制器中字符串格式的数据。但是,如果我执行 str(request.vars),web2py 会在我的数据前面附加一个 Storage 标签。
@request.restful()
def doWork():
def POST(*args, **vars):
return(request.vars)
return locals()
假设 mydata.json 文件很简单,例如:
{ "key": "value" }
对 POST 的请求将 return {"key": "value"} 作为一个 gluon.storage.Storage 对象。
如果我将行 return(request.vars) 更改为 return(str(request.vars)) 现在输出为: < Storage {u'key' : u'值'}>
如何将此 request.vars 转换为字符串而不将存储标记附加到前面并将双引号更改为单引号?
如果您想将 vars
转换回 JSON,您可以使用 Python json
库或只使用 response.json
:
return response.json(vars)
或者,您可以将 .json
扩展名添加到请求中,然后直接 return vars
:
return vars
请求如下:
curl -H "Content-Type: application/json" --data @mydata.json https://mywebsite/doWork.json
在这种情况下,web2py 会自动将响应转换为 JSON。