![](/img/trans.png)
[英]How can I see the payload POSTed to a Flask app endpoint that is hosted on Google App Engine?
[英]Google App Engine Payload Object
如何在python中的任务有效负载中发送类对象? 我想在任务的参数中发送对象。
当我使用simplejson
,出现错误: Object is not serializable
。
使用泡菜时,出现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'
问题在于卸载的数据类型。 我将其强制转换为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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.