Я задаюсь вопросом, как я могу получить СУММУ объекта оценки, который я получаю от хранилища данных (Python)?
если я:
ratingsum = 0
for rating in ratings:
ratingsum + rating
print ratingsum
?
Ага, это все. Получите все сущности, которые вы хотите суммировать, и просуммируйте их в своем приложении. В GQL нет SUM
.
Если вы пытаетесь найти средний рейтинг сущности, есть способ получше.
class RateableThing(db.Model):
num_ratings = db.IntegerProperty()
avg_rating = db.FloatProperty()
Чтобы узнать средний рейтинг объекта, достаточно просто выполнить поиск, а добавить новый рейтинг достаточно:
thing.avg_ratings = ((thing.avg_ratings * thing.num_ratings) + new_rating) / thing.num_ratings + 1
thing.num_ratings += 1
thing.put()
Преобладающая идиома хранилища данных App Engine - выполнять как можно больше работы над записью и как можно меньше - над читайте, так как чтения будут происходить гораздо чаще.
Я не могу ответить на часть вашего вопроса о Google App Engine, но ваш код (если вы измените +
на + =
) эквивалентно:
ratingsum = sum(ratings)
Я почти уверен, что вы можете использовать sum ()
для любой последовательности или итерации, содержащей числовые объекты.