在App Engine上序列化对象

0 投票
2 回答
1411 浏览
提问于 2025-04-16 16:52

我有一个对象,它的 __init__ 方法需要至少一个参数。

我想把这个对象存到缓存里。

但是,当我尝试从缓存中获取这个对象时,出现了一个错误,提示我没有给 ___init___ 方法传足够的参数。

有人告诉我,我需要在把对象发送到缓存之前先对它进行“序列化”,但我看到的所有例子都是用 .dat 文件,而在 appengine 上是不能使用任何文件系统的。

2 个回答

0

我觉得你是在尝试在App Engine中使用memcache。这个博客对你会很有帮助。

http://blog.notdot.net/2009/9/Efficient-model-memcaching

3

你可以在不需要文件系统的情况下使用pickle,直接用pickle.loads和pickle.dumps。比如:

import pickle
obj = YourClass(yourparam=...)
data = pickle.dumps(obj)
# and now, store "data" into the cache

# later, get "data" from the cache
obj = pickle.loads(data)

# and tada, obj if the same as before :)

撰写回答