我有一個以下用例:動態地將屬性添加到Google數據存儲實體
我有一個接受字符串列表的方法。對於每個弦的,我需要現有的谷歌的數據存儲實體A
實施例下創建屬性:我有一個現有的實體Person
具有屬性fname
和lname
。 如果輸入列表有字符串 - address
,city
,我需要更新實體Person
以包含這些新屬性address
和city
。
我在Python中編寫這個用例。有關我如何實現這一目標的任何建議?
我有一個以下用例:動態地將屬性添加到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()
謝謝您的信息。 – user2998453
感謝您的信息。 – user2998453
不客氣。 – Y2H