Объект полезной нагрузки Google App Engine

Как отправить объект класса в полезную нагрузку задачи в python? Я хочу отправить объект в параметры задачи.
Когда я использую simplejson , я получаю ошибку: Object is not serializable .
Когда я использую pickle, я получаю KeyValue Error .
Как это сделать?

Это класс, который я хочу сериализовать

 class Matrix2D_icfg: name = "" indices = [] value = {} def __init__(self,s): self.name = s self.indices = [] def __getitem__(self,i): self.indices.append(i) if len(self.indices)==2: (m,n) = self.indices self.indices = [] if self.value.has_key(m*4276+n) == True : value = self.value[m*4276+n] else : value = 0 return value else: return self def __setitem__(self,i,value): self.indices.append(i) if len(self.indices)==2: (m,n) = self.indices if value != 0 : self.value[m*4276+n] = value self.indices = [] return self icfg = Matrix2D_icfg("icfg") #declaring object icfg_compress = pickle.dumps(icfg) #to pickle icfg = pickle.loads(icfg_compress) # to unload 

Я получаю следующую ошибку, когда передаю маринованный объект в качестве полезной нагрузки и выгружаю его позже

 File "/Users/praveensekar/myFYP/gaecode/pknots4d.2.3/pknots.py", line 439, in post icfg = pickle.loads(icfg_compress) File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/pickle.py", line 1374, in loads return Unpickler(file).load() File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/pickle.py", line 858, in load dispatch[key](self) KeyError: '\x00' 

3 Solutions collect form web for “Объект полезной нагрузки Google App Engine”

Проблема заключалась в типе данных, которые были выгружены. Я набросил его на тип str, и все, казалось, работало правильно. Я просто изменил его на

 icfg = Matrix2D_icfg("icfg") #declaring object icfg_compress = pickle.dumps(icfg) #to pickle icfg = pickle.loads(str(icfg_compress)) # to unload 

Вы посмотрели на отложенную библиотеку ? Он разработан именно для этого и заботится о сериализации и десериализации для вас.

Это часть моей очереди обслуживания очередей. Он просто помещает список в другую задачу, чтобы разбить проект на управляемые части. Это просто часть этого, но вы должны получить большую часть идеи, что вам нужно сделать.

Чтобы сохранить его:

 from django.utils import simplejson as json .... stuff happens index = 0 current_list = [] while index < len(item_list): if index+500 < len(item_list): for item in item_list[index:index+500]: current_list.append(item.item_number) jsondump = json.dumps(current_list) taskqueue.add(url = '/queuer', headers = {'Content-Type':'application/json'}, payload = jsondump) 

Чтобы загрузить его:

 from django.utils import simplejson as json class TaskQueuer(webapp.RequestHandler): def post(self): request = self.request.body task_list = json.loads(request) 
  • Как сделать сообщение с данными из пустого json через HTTPie?
  • Обновление json-поля в Postgres
  • Использование геокодирования Google Maps с Python с помощью urllib2
  • Преобразование кортежей python, списков, словарей, содержащих объекты панды (серии / dataframes), в json
  • Получение объектов JSON из текстового файла (с использованием Python)
  • Доступ к словарю по ключу в шаблоне Django
  • python / flask / Jinja2 и Json
  • Получение значений из JSON с использованием Python
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.