Сериализация формы, представленной значения в движке приложения - PullRequest
0 голосов
/ 07 января 2012

Я просто хотел сериализовать все поля отправленной формы, например, в PHP:

json_encode($_GET)

json.dumps(self.request.get) не работает:

<type 'exceptions.TypeError'>: <bound method Request.get of <Request at 77ea190 GET http://localhost:8083/?a=value>> is not JSON serializable 
      args = ('<bound method Request.get of <Request at 77ea190...ocalhost:8083/?a=value>> is not JSON serializable',) 
      message = '<bound method Request.get of <Request at 77ea190...ocalhost:8083/?a=value>> is not JSON serializable'

У меня естьпопытался использовать модуль CGI, и это тоже дает не сериализуемую ошибку.Если вам интересно: я использую это для отправки данных обратно в мой шаблон для повторного заполнения полей формы.

1 Ответ

5 голосов
/ 07 января 2012

self.request.get возвращает метод get, а не тот, который возвращают методы.Вы должны сделать это:

json.dumps(self.request.GET.items())

request.GET вернет объект UnicodeMultiDict, а request.GET.items() вернет список кортежей, каждый из которых (key, value).

Cf.http://code.google.com/appengine/docs/python/tools/webapp/requestclass.html и http://docs.webob.org/en/latest/reference.html#id1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...