-1
我有一個屬性的集合。這些屬性中的一些被賦予評論分數。評論保存在AggregateReview表中。我必須根據他們的分數對這些屬性進行排序。擁有最高評分的房產將排在第一位。當所有帶評語分數的房產將被排序時,我必須追加那些未經評論的房產。 這是我寫的代碼,它工作正常....但我想知道這個代碼中有什麼,可以優化,我是新的應用程序引擎和ndb,所以任何幫助將不勝感激。 (我覺得有那麼多的電話DB)...如何最小化ndb中的db調用並優化python代碼?
sortedProperties = []
sortedProperties.extend(sorted([eachProperty for eachProperty in properties if AggregateReview.query(AggregateReview.property == eachProperty.key).get()],key=lambda property: AggregateReview.query(AggregateReview.property == property.key).get().rating,reverse=True))
sortedProperties.extend([eachProperty for eachProperty in properties if AggregateReview.query(AggregateReview.property == eachProperty.key).get() is None])
return sortedProperties
解決方法的位後,我來到了這一點:
return sorted(properties,key=lambda property: property.review_aggregate.get().average,reverse=True)
但它拋出一個錯誤: 「NoneType」對象有沒有屬性'平均'
因爲它無法找到每個屬性的review_aggregate。我希望它能夠接受None ....
您的代碼行是太霸騰™ –