我试图将一个对象保存到Cloud中,该对象包含一个作为属性值的字典:
client = datastore.Client(project_id)
key = client.key('Config', 'config', 'Environment', 'env_name')
env = datastore.entity.Entity(key)
env['prop1'] = dict(foo='bar')
client.put(env)但它增加了
ValueError:未知原型
虽然我可以使用gcloud节点来完成这个任务。
是否可以使用gcloud-python保存复合对象?
发布于 2016-06-28 13:51:12
听起来你对存储一个嵌入式实体很感兴趣,我相信这就是gcloud节点自动实现的功能。
我认为您可以通过将字段(prop1)设置为包含子属性(foo)设置为'bar'的datastore.Entity来做到这一点。
client = datastore.Client(project_id)
key = client.key('Config', 'config', 'Environment', 'env_name')
env = datastore.Entity(key)
env['prop1'] = datastore.Entity(key=client.key('EmbeddedKind')
env['prop1']['foo'] = 'bar'
client.put(env)当你把这个拿回来的时候,看起来就像.
>>> c.get(env.key)
<Entity[{'kind': u'Config', 'name': u'config'}, {'kind': u'Env', 'name': u'env_name'}] {u'prop1': <Entity[{'kind': u'Embedded'}] {u'foo': 'bar'}>}>https://stackoverflow.com/questions/38052386
复制相似问题