如何在web.py服务器应用程序中从Post获取JSON值?

我使用Python 2.7.6和web.py服务器来试验一些简单的Rest调用…

希望将JSON有效负载发送到我的服务器,然后打印有效负载的值…

样本负载

{"name":"Joe"}

这是我的python脚本

#!/usr/bin/env python
import web
import json

urls = (
    '/hello/', 'index'
)

class index:
    def POST(self):
        # How to obtain the name key and then print the value?
        print "Hello " + value + "!"

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()

这是我的cURL命令:

curl -H "Content-Type: application/json" -X POST -d '{"name":"Joe"}' http://localhost:8080/hello

我希望这个回复(纯文本):

Hello Joe!

感谢您抽出时间来阅读…

最佳答案
你必须解析json:

#!/usr/bin/env python
import web
import json

urls = (
    '/hello/', 'index'
)

class index:
    def POST(self):
        # How to obtain the name key and then print the value?
        data = json.loads(web.data())
        value = data["name"]
        return "Hello " + value + "!"

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()

另外,请确保您的cURL请求中的url是http:// localhost:8080 / hello /;你的示例中有http:// localhost:8080 / hello,这会引发错误.

转载注明原文:如何在web.py服务器应用程序中从Post获取JSON值? - 代码日志