2013-10-17 71 views
1

如何序列化我的模型。當關鍵屬性不重複時,我可以序列化。序列化具有重複鍵屬性的NDB模型

這個模型看起來像:

class Properties(ndb.Model): 
    propertyID = ndb.StringProperty(required=True) 
    propertyParentKey = ndb.KeyProperty() 
    propertyItems = ndb.KeyProperty(repeated=True) 

我要像做

#get all in list 
fetched = model.Properties.query().fetch() 

#to a list of dicts 
toSend = [p.to_dict() for p in fetched] 

#Serialize 
    json.dumps(stuff=toSend) 

是否有可能以某種方式序列化模式?我如何處理keyproperties的列表?

+1

那麼你爲什麼不去做呢?有些類型(屬性)需要自定義轉換爲json,如None值等。 –

回答

2

爲什麼不建立自己的json友好的字典方法?像這樣的東西可能就足夠了:

def custom_to_dict(self): 
    return { 
     'propertyId': self.propertyID, 
     'propertyParentKey': self.propertyParentKey.urlsafe(), 
     'propertyItems': [key.urlsafe() for key in self.propertyItems] 
    } 

https://developers.google.com/appengine/docs/python/ndb/keyclass#Key_urlsafe

+0

這就是我最終實現的。謝謝。我想確保我沒有忽視更常見的事情。 – user2892511