如何在python 2.7中的cherrypy中接收JSON POST请求数据

时间:2015-09-13 13:34:03

标签: json python-2.7 cherrypy

我正在尝试了解如何在Python 2.7中接收JSON POST数据 与一个兼容html和json的cherrypy安装

我正在使用此脚本发送演示JSON请求

import urllib2
import json

def mytest():

  d = {
    'hello': '1',
    'world': '2'
  }

  print(json.dumps(d))
  URL = 'http://localhost:8092/json_in'
  print(URL)
  post_data = json.dumps(d)

  req = urllib2.Request(URL, post_data)
  RESULT = urllib2.urlopen(req).read()
  print(RESULT)

if __name__ == '__main__':
  mytest()

樱桃方面就像这样工作

# -*- coding: utf-8 -*-^
import cherrypy
class WelcomePage:
    def index(self):
      return "<html><body>hello world</body><html>"
    index.exposed = True

    def json_in(self,**kwargs):
       print kwargs

       # this is dumb but works to grab the first and only argument
       for key,value in kwargs.iteritems():
         myjson = key

       parsed_json = json.loads(myjson)
       print(parsed_json['hello'])


       return "{}"

    json_in.exposed = True 


if __name__ == '__main__': 
  cherrypyconf = "cherrypy.conf" 
  cherrypy.quickstart(WelcomePage(),config=cherrypyconf)

当我启动服务器并发送请求时 我可以在卖家看到我的要求(来自印刷品 命令)但字符串解析失败并显示错误 TypeError:期望的字符串或缓冲区

任何提示如何解决这个问题?

更新:

问题似乎是我不明白如何处理** kwargs。 更新的代码有效(但使用非常愚蠢的方式来提取 JSON,直到我找到正确的语法来获取第一个参数)

0 个答案:

没有答案