如何在数据存储区中放置字典?

Dan*_*ook 8 python google-app-engine dictionary google-cloud-datastore

有没有一种在数据存储区中存储Python字典的好方法?我想做类似以下的事情:

from google.appengine.ext import db

class Recipe(db.Model):
  name = db.StringProperty()
  style = db.StringProperty()
  yeast = db.StringProperty()
  hops = db.ListofDictionariesProperty()
Run Code Online (Sandbox Code Playgroud)

当然,最后一行实际上并不起作用.我需要将hops作为键值对的列表,其中键始终是一个字符串,值可以是字符串,整数或浮点数,但我看不到任何内容可以让我在物业类.

Ned*_*der 7

序列化dict repr是一种很好的方法.然后eval,您可以使用" 安全评估 " ,或者如果您不信任数据,重新构建它.

repr over pickling的一个优点是数据在数据库中是可读的,甚至可以在绝望的情况下查询.


Joh*_*ooy 7

你可以使用json