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

时间:2015-11-18 02:27:24

标签: python json rest curl web.py

使用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!

感谢您抽出宝贵时间阅读此内容......

1 个答案:

答案 0 :(得分:10)

你必须解析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()

另外,请确保您的http://localhost:8080/hello/请求中的cURLhttp://localhost:8080/hello;你的例子中有findInterval,这会引发错误。