我正在尝试从表(查看)中获取列(分数)的平均值。 我尝试了sqlalchemy,但是它没有返回值,而是返回查询本身。我将其打印出来用于说明。
我已经使用SQLAlchemy两个月了,以前从未经历过。
class Review_Service:
def create_review(self, title, description, professor_name, course, score, difficulty):
try:
professor_last_name = professor_name.split(', ')[0]
professor_first_name = professor_name.split(', ')[1]
professor_service = Professor_Service()
professor_object = professor_service.get_professor(professor_last_name, professor_first_name)
review = Review(title=title, description=description, professor_id=professor_object.id, course=course, score=score, difficulty=difficulty)
review_dao = Review_Dao()
review_dao.create_review(review)
avg_score = review_dao.get_avg_review_score(professor_object.id)
# I print it to see what it returns
print (avg_score)
except Database_Exception as ex:
raise Service_Exception (str(ex))
class Review_Dao:
def get_avg_review_score(self, prof_id):
tmpSession = self.get_connection()
avg_score = tmpSession.query(func.avg(Review.score)).filter(Review.professor_id == prof_id)
return avg_score
def get_connection(self):
database = DatabaseConnection()
tmpSession = database.get_session_for_database_created()
return tmpSession
请注意:该代码较长,但在示例中我缩短了。
这是avg_score打印的内容:
选择avg(review.score)AS avg_1 从评论 在哪里review.professor_id =?
代替值。 另外,如果我在数据库中复制粘贴该SQL查询,它会完美地工作。