0
的導入方法對於進口我需要一個龐大的投標量添加到MyClassA實例優化與Python
foos = json.loads(self.request.get('foos'))
for foo in foos :
a = MyClassA()
a.id = foo["id"]
a.name = foo["name"]
for bId in foo["stringWithAllBidsForA"].split(";") :
tmp = B.gql("WHERE id = '"+bId +"'").get()
if tmp :
a.bList.append(tmp.key())
a.put()
我肯定這是懶惰的,但如何優化代碼。
我正在考慮在B的id字段中添加(indexed = True),並且僅爲B gql查詢和批處理數據存儲放置鍵。 但我不知道該怎麼做。
編輯:
我更換b.id = bId by b = MyClassB(key_name= bId)
所以現在我做:
a.bList.append(foo["stringWithAllBidsForA"].split(";"))
我得到的編碼probleme轉化海峽到鍵入我試圖 與encoded= foo["stringWithAllBidsForA"].split(";")[0]
怎麼啦?不可能解碼>拆分>轉換爲鍵。
是Model.get_by_key_name(list_of_b_ids)與鍵唯一兼容,應如何調用它? – 2012-01-27 13:56:48
'get_by_key_name'接受一個鍵名列表,它相當於一個特定實體類的'db.get'。 – proppy 2012-01-27 14:01:17
您確定只獲取關鍵名稱,因爲它在文檔中寫有:「獲取給定關鍵字名稱(或多個名稱)的模型實例(或多個實例)」 – 2012-01-27 14:10:38