【发布时间】:2013-10-12 21:23:08
【问题描述】:
我正在 Google App Engine 平台上构建一个网络应用程序,它使用 webapp2,它使用 WebOb。我想POST 一些 JSON 格式的数据,包括嵌套数组和字典。例如:
$.post('/addvendor', {'vendor': {'name': 'test', 'description': 'a good company', 'tags':['foo', 'bar']}}, function(data){console.log(data)}, 'application/json')
但是,在服务器端,数据以平面“MultiDict”对象的形式出现,与我POSTed 的原始嵌套 JSON 对象不同。例如:
>>> print self.request.params.items()
[(u'vendor[name]', u'test'), (u'vendor[description]', u'a good company'), (u'vendor[tags][]', u'foo'), (u'vendor[tags][]', u'bar')]
这个对象很难解析。在我的服务器代码中,有没有办法在服务器上获取标准 JSON 格式的相同数据,或者至少是使用嵌套字典和数组的 Python 等效数据,以便我可以轻松地操作和检查数据?
【问题讨论】:
-
我发现了一个类似的问题:stackoverflow.com/questions/9058233/… 不幸的是,这个问题的答案对我没有帮助,因为我无法在谷歌应用引擎环境中包含 formencode 包。我想我可以改用 Heroku 并使用 node.js。
-
$.post 是 jquery 吗?您使用的是 python 2.7.*?你能不能不做类似的事情:
vendor = json.loads(self.request.get('vendor'))你必须用import json导入json
标签: python json google-app-engine webapp2 webob