Как передать объект BeautifulSoup.Tag в запрос HTTP post в движке приложения Google? - PullRequest
1 голос
/ 30 апреля 2011

У меня есть BeautifulSoup.Tag объект, который я хочу передать в запросе http post.В частности, это запрос, который будет выполнять задача в Google App Engine.

Это код:

taskqueue.add (url = '/ maintenance', method = 'post', params = {'row': row})

Когда я получаю запрос на другом конце, строка параметра является строкой Unicode.Как мне вернуть мой оригинальный объект?Поскольку я понимаю, что json eval не будет работать для такого типа объектов, есть ли другое решение. Я вынужден пропускать только простые объекты?

Ответы [ 2 ]

1 голос
/ 30 апреля 2011

Хммм.Красивый суп - это своего рода оценщик.Поэтому я могу отправить html объекта и красивый суп повторного использования.

Я сделал это следующим образом:

taskqueue.add(url='/maintenance', params={'element': str(myObject)})

, а затем повторно использовал суп в самой задаче:

payload = self.request.get ('element')

soup = BeautifulSoup (полезная нагрузка)

0 голосов
/ 30 апреля 2011

Полагаю, вы можете попробовать функции Python Pickle для передачи значения по строке. http://docs.python.org/library/pickle.html

Другим способом будет использование memcache. просто сохраните значение в memcache и передайте ключ задачам.

например

memcache.set("some_random_generate_key", row)
taskqueue.add(url='/maintenance', method='post', params={'row_key': "some_random_generate_key"})

затем в обработчиках задач просто снова получите значение из memcache. (на самом деле, Google Appengine также использовал pickle для сохранения значения в memcache)

memcache.get(row_key)
...