2011-04-28 51 views
4

空表不能存储到动态属性在Python中为GAE在动态属性中存储一个空列表?

class Mo(db.Expando) 
    pass 

def newFunction 
    mo = Mo(key_name='1') 
    mo.list_of_stuff = [] # <--Error 

执行最后陈述后,我得到的错误: 不能空单动态属性存储list_of_stuff

如何存放的空单动态在谷歌应用程序引擎的python属性?

+0

当你分配列表或者当你尝试'put()'时,你会得到错误吗? – 2011-04-28 20:09:23

+0

我在分配清单时得到了它 – 2011-04-28 20:37:57

回答

4

你不能,因为它是一个无效的概念。数据存储实体存储为一组键/值对。当你存储任何类型的列表时,它在内部表示为具有相同键和不同值的多个对,而不是具有值列表的一个键。

因此,存储一个空列表相当于根本不存储任何内容。您的实体内只有零个实例。如果要表示空列表,请保留该属性未设置。如果您需要区分未设置的属性和空列表的概念,请使用其他非空值填充动态属性,如NoneFalse

+0

很酷,谢谢德鲁! – 2011-04-29 17:12:11

2

你不能,你要么需要在你的类定义属性或设置就可以了