1

GQL オブジェクトが空かどうか (Python を使用して Google App Engine で) を確認しようとしていますが、どうすればよいですか? 私はこれを試しましたが、うまくいきませんでした:

comments = db.GqlQuery("SELECT * "
                                "FROM Comment "
                                "where ANCESTOR IS :1 "
                                "order by date DESC", 
                                movie_data) 
        if comments:
            ratingsum = 0
            i=0
            for comment in comments:
                ratingsum=ratingsum + comment.rating
                i+=1
            average = ratingsum/i
        else:
            average = "no ratings"
4

2 に答える 2

0

@NickJohnson によると、呼び出しcountには同じクエリを 2 回実行する必要があります。したがって、それを回避するには、コメントを反復処理する必要があるため、副作用を観察してコメントが空であることを「検出」することもできます。空のi場合commentsはゼロになります。

comments = db.GqlQuery("SELECT * "
                                "FROM Comment "
                                "where ANCESTOR IS :1 "
                                "order by date DESC", 
                                movie_data) 
ratingsum = 0
i = 0
for comment in comments:
    ratingsum += comment.rating
    i += 1
if i:    
    average = ratingsum/i
else:    
    average = "no ratings"
于 2013-02-27T13:00:51.787 に答える
0

Gql クエリはクエリ オブジェクトを提供しますが、結果 (エンティティ) は提供しません。結果を取得するには、結果を取得する必要があります。取得、カウント、取得、または結果セットの繰り返しを使用します。

于 2013-02-27T12:55:46.217 に答える