将python collections.Counter存储为App Engine中的pickle属性
我能够将集合计数器存储到app engine数据存储中,但是当我检索并尝试解析它时,我得到以下错误:将python collections.Counter存储为App Engine中的pickle属性,python,google-app-engine,google-cloud-datastore,counter,Python,Google App Engine,Google Cloud Datastore,Counter,我能够将集合计数器存储到app engine数据存储中,但是当我检索并尝试解析它时,我得到以下错误: for word in counter: TypeError: 'NoneType' object is not iterable 如果我只是打印输出,它会显示: Counter({'a': 25, 'b': 12, 'c': 10, 'd': 9}) 现在,如果我用相同的值初始化一个字典,我将其存储为与计数器相同的方式,我可以检索并解析它,而不会出现任何问题: counter = Coun
for word in counter:
TypeError: 'NoneType' object is not iterable
如果我只是打印输出,它会显示:
Counter({'a': 25, 'b': 12, 'c': 10, 'd': 9})
现在,如果我用相同的值初始化一个字典,我将其存储为与计数器相同的方式,我可以检索并解析它,而不会出现任何问题:
counter = Counter()
counter = {'a': 25, 'b': 12, 'c': 10, 'd': 9};
...
#Store in app engine datastore and retrieve as "values"
...
for letter in values:
self.response.write(letter + ":" + str(values[letter]) + "<br>")
计数器=计数器()
计数器={'a':25,'b':12,'c':10,'d':9};
...
#存储在app engine数据存储中并作为“值”检索
...
对于值中的字母:
self.response.write(字母+“:”+str(值[字母])+“
”)
输出:
a:25
c:10
b:12
d:9
这是否意味着您不能存储计数器,但最好在存储计数器之前将其转换为字典
谢谢检索计数器的代码是什么?如果您能够打印它,您就犯了其他错误,并且代码中的
计数器
名称设置为None
。尽管看起来很愚蠢,但我无法重现错误。。。我的猜测是我的数据存储一团糟。清除它很可能解决了问题。谢谢Martijn!