我正在使用 Google App Engine 构建 Facebook 应用程序。我试图将我的用户 Facebook 帐户中的 friend 与我的应用程序中已有的 friend 进行比较,因此如果他们是 Facebook 中的 friend 但不是我的应用程序中的 friend ,或者如果他们已经是两者中的 friend ,我可以将它们添加到数据库中。我正在尝试这样的事情:
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
返回一个包含用户好友的对象。如何比较两个检索到的对象列表中的内容。它不一定需要与 Facebook 相关。
(我知道这个问题可能很愚蠢,但这对我来说确实很痛苦。)
最佳答案
如果升级到 NDB,“in”运算符实际上将起作用; NDB 在模型实例上实现了适当的 eq 运算符。请注意,还会比较键,因此具有相同属性值但不同键的实体被视为不相等。如果您想忽略该键,请考虑比较 e1._to_dict() == e2._to_dict()。
关于python - “if”元素不在 Google App Engine 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12029680/