python - 如何在 google appengine 上持久化一个 python 字典

标签 python dictionary persistence

使用 appengine 的数据存储框架,使 {} 持久化的 pythonic 方法是什么?

最佳答案

如果您打算查询单个字典元素,则只需要使用 expando 选项。

假设您不想这样做,那么您可以使用自定义属性 -

class ObjectProperty(db.Property):
  data_type = db.Blob

  def get_value_for_datastore(self, model_instance):
    value = self.__get__(model_instance, model_instance.__class__)
    pickled_val = pickle.dumps(value)
    if value is not None: return db.Blob(pickled_val)

  def make_value_from_datastore(self, value):
    if value is not None: return pickle.loads(str(value))

  def default_value(self):
    return copy.copy(self.default)

请注意,上面的属性定义是我从 Nick Johnson 生成的一些代码中获得的。这是一个project on git hub ,并包含许多其他自定义属性。

关于python - 如何在 google appengine 上持久化一个 python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3203543/

相关文章:

dictionary - 从 Go 中的映射条目创建平面数组

python - 在字典中压缩两个列表,但在键中保留重复项

python - 使用范围作为字典中的键值,最有效的方法?

database - Docker-compose v3 不保留 postgres 数据库

grails - 为什么不鼓励在Grails中删除数据?

python - 将 int 转换为字符串中的单字节?

python - 如何在 matplotlib 中绘制内联线标签?

python - 如何在 Django REST Framework 中测试 FileField

python - 在 Python 3 中从 Web 下载文件

java - 存储持久对象的正确位置是什么?