Python将多个对象加载到映射中以在memcache中使用

时间:2011-03-08 16:39:37

标签: python mapping memcached

此代码有效:

   for num in range(1,4):
        results = memcache.get("link_" + str(num))
        output.write('An anonymous person wrote: <blockquote>%s</blockquote>' % results.date)
    return output.getvalue()

此代码无效:

results = memcache.get_multi(linkKeys,"link_")
for results in results:
    output.write('An anonymous person wrote: <blockquote>%s</blockquote>' % results.date)
return output.getvalue()

有人可以向我解释为什么使用memcache.get_multi会返回错误:

Traceback (most recent call last):
  File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 515, in __call__
    handler.get(*groups)
  File "C:\Main.py", line 28, in get
    values.write(self.RenderValue())
  File "C:\Main.py", line 57, in RenderValue
    output.write('An anonymous person wrote: <blockquote>%s</blockquote>' % results.date)
AttributeError: 'str' object has no attribute 'date'

感谢所有帮助我解决这个问题的人!

2 个答案:

答案 0 :(得分:1)

结果* s * in result * s * ??

答案 1 :(得分:0)

memcache只能存储pickleable对象。你能安全地挑选一个GqlQuery结果吗?如果没有,您可能需要先将其转换为dict,然后再将其转交给memcache。

请参阅pickle docs以及相关的GAE文档。

您可能还想对此进行基准测试,看看使用memcache是​​否真的有帮助。