Python 数据存储设置变量的属性名称
我有一个未知变量,要用作数据存储属性名。我正在使用Expando,因为我知道您可以动态创建属性,而无需首先在db类中声明它们,但是我无法做到这一点,因为属性名称未知。我发现错误:“StoreNames”对象不支持项分配。这有什么办法吗Python 数据存储设置变量的属性名称,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我有一个未知变量,要用作数据存储属性名。我正在使用Expando,因为我知道您可以动态创建属性,而无需首先在db类中声明它们,但是我无法做到这一点,因为属性名称未知。我发现错误:“StoreNames”对象不支持项分配。这有什么办法吗 class StoreNames(db.Expando): index = db.FloatProperty() name = "unknown" value = "something" store = StoreNames() store[name]
class StoreNames(db.Expando):
index = db.FloatProperty()
name = "unknown"
value = "something"
store = StoreNames()
store[name] = value
store.index = 0
通过使用以下代码解决:
class StoreNames(db.Expando):
index = db.FloatProperty()
name = "unknown"
value = "something"
store = StoreNames()
setattr(db, name, value)
我本来会早一点回答的,但斯塔克不让我回答。感谢Brent Washburne使用此处描述的setattr()方法:[如何在Google App Engine expando类中创建动态字段?][1][1]: