【发布时间】:2015-07-29 10:57:19
【问题描述】:
我不断收到随机错误,例如:
suspended generator _get_tasklet(context.py:329) raised ProtocolBufferDecodeError(corrupted)
或
suspended generator put(context.py:796) raised ValueError(Expecting , delimiter: line 1 column 440 (char 440))
或
suspended generator put(context.py:796) raised ValueError(Invalid \escape: line 1 column 18002 (char 18002))
或
suspended generator _get_tasklet(context.py:329) raised ProtocolBufferDecodeError(truncated)
直到几天前一切正常,我还没有进行任何更改。当我重新启动我的应用程序时,一切都很好,大约五分钟,直到我得到一个
suspended generator _get_tasklet(context.py:329) raised ProtocolBufferDecodeError(corrupted)
在那之后,我在每个数据库 put 或 get 上都会遇到其他错误之一。导致错误的表和代码每次都不一样。我不知道从哪里开始,因为错误每次都在一个新的地方。 这些只是常规的数据库放置和获取,例如
ndbstate = NdbStateJ.get_by_id(self.screen_name)
或
ndbstate.put()
Google 搜索无法为我指明任何特定方向。有任何想法吗? 错误
Expecting , delimiter: line 1 column 440 (char 440)
可能是因为某些表中的某些字段类型是 JSON。但是为什么突然?
所以也许我在某处没有正确转义,例如使用 r'{...}',但如果某处有错误条目,如果我无法查询,我该如何解决?为什么它会破坏所有查询的整个表?为什么它是随机的。每次都不是同一个查询。
这是一个表格示例
class NdbStateJ(ndb.Model):
last_id = ndb.IntegerProperty()
last_search_id = ndb.IntegerProperty()
last_geo_id = ndb.IntegerProperty()
mytweet_num = ndb.IntegerProperty()
mentions_processed = ndb.JsonProperty()
previous_follower_responses = ndb.JsonProperty()
my_tweets_tweeted = ndb.JsonProperty()
responses_already_used = ndb.JsonProperty()
num_followed_by_cyborg = ndb.IntegerProperty(default=0)
num_did_not_follow_back = ndb.IntegerProperty(default=0)
language_model_vector = ndb.FloatProperty(repeated=True)
follow_wait_counter = ndb.IntegerProperty(default=0)
这里是一个创建表格的例子
ndbstate = NdbStateJ(id=screen_name,
last_id = 37397357946732541,
last_geo_id = 37397357946732541,
last_search_id = 0,
mytweet_num = 0,
mentions_processed = [],
previous_follower_responses = [],
my_tweets_tweeted = [],
responses_already_used= [],
language_model_vector = [])
ndbstate.put()
【问题讨论】:
-
如果您尝试上传到不同的应用程序并从那里运行,您会收到相同的错误吗?如果您从未得到它,那么它可能是您的其他应用程序损坏。另外,“重启我的应用”是什么意思
-
酷。谢谢。我终于弄明白了。那是一头野兽。见下文。
标签: python json google-app-engine