动态地将属性添加到Google数据存储实体
问题描述:
我有一个以下用例:动态地将属性添加到Google数据存储实体
我有一个接受字符串列表的方法。对于每个弦的,我需要现有的谷歌的数据存储实体A
实施例下创建属性:我有一个现有的实体Person
具有属性fname
和lname
。 如果输入列表有字符串 - address
,city
,我需要更新实体Person
以包含这些新属性address
和city
。
我在Python中编写这个用例。有关我如何实现这一目标的任何建议?
答
因此,要做到这一点,最好的办法是让你的类继承ndb.Expando
。 Expando
和Model
之间的区别在于,您始终可以将属性添加到Expando
实体并能够将其存储在数据存储中。
知道这一点,有几种方法可以继续,但我猜你还需要使用Python的setattr(object, name, value)
方法从字符串中传递属性名称。
答
看看在Expando模型类:https://cloud.google.com/appengine/docs/standard/python/ndb/creating-entity-models#creating_an_expando_model_class
class Person(ndb.Expando):
pass
person = Person(fname='some', lname='body')
person_key = person.put()
...
person = person_key.get()
person.city = 'San Francisco'
person.address = '1234 Main St.'
person.put()
+0
谢谢您的信息。 – user2998453
感谢您的信息。 – user2998453
不客气。 – Y2H