1

Google App Engine を使用して Facebook 用のアプリケーションを構築しています。ユーザーの Facebook アカウントの友達と既にアプリケーションにある友達を比較しようとしていたので、Facebook の友達であるが私のアプリケーションの友達でない場合、または両方の友達である場合はデータベースに追加できませんでした。私はこのようなことを試みていました:

request = graph.request("/me/friends")
user = User.get_by_key_name(self.session.id)
list = []
for x in user.friends:
    list.append(x.user)

for friend in request["data"]:
    if User.get_by_key_name(friend["id"]):
        friendt = User.get_by_key_name(friend["id"])
        if friendt.key not in user.friends:
            newfriend = Friend(friend = user,
                               user = friendt,
                               id = friendt.id)
            newfriend.put()

graph.requestユーザーの友達を含むオブジェクトを返します。取得したオブジェクトの 2 つのリストの内容を比較するにはどうすればよいですか。必ずしも Facebook 関連である必要はありません。

(この質問はばかげているかもしれませんが、私にとっては本当に苦痛です。)

4

2 に答える 2

1

NDB にアップグレードすると、「in」演算子が実際に機能します。NDBは Model インスタンスに適切なeq演算子を実装します。キーも比較されるため、プロパティ値が同じでキーが異なるエンティティは等しくないと見なされることに注意してください。キーを無視したい場合は、e1._to_dict() == e2._to_dict() を比較することを検討してください。

于 2012-08-21T03:43:08.390 に答える