Я создаю веб-приложение на платформе Google App Engine, в котором используется webapp2, который использует WebOb. Я хотел бы получить POST
некоторые данные в формате JSON, включая вложенные массивы и словари. Например .:Google App Engine: Python: WebOb: Как получить данные POST в формате JSON?
$.post('/addvendor', {'vendor': {'name': 'test', 'description': 'a good company', 'tags':['foo', 'bar']}}, function(data){console.log(data)}, 'application/json')
Однако на стороне сервера, данные поступают в виде плоского «MultiDict» объект, а не что-либо как исходного вложенного объекта JSON, который я POST
ред. Например:
>>> 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 с использованием вложенных словарей и массивов на сервере, чтобы я мог легко манипулировать и анализировать данные?
Я нашел такой же вопрос: http://stackoverflow.com/questions/9058233/how-to-convert-a-multidict-to-nested-dictionary К сожалению, ответ на этот вопрос мне бесполезен, потому что я могу Включить пакет formencode в среду движка Google. Я думаю, что я могу переключиться на Heroku и использовать node.js. – jayhendren
$ .post - jquery? вы используете python 2.7. *? Можете ли вы тогда не делать что-то вроде: 'vendor = json.loads (self.request.get ('vendor'))' Вам нужно импортировать json с 'import json' – HMR