【发布时间】:2012-07-23 04:09:21
【问题描述】:
在 GAE (python) 中合并两个 GQLQueries 时遇到一些问题。
fp_events = db.GqlQuery("SELECT * FROM Event WHERE firstPlayer=:1", alias).fetch(mylimit)
sp_events = db.GqlQuery("SELECT * FROM Event WHERE secondPlayer=:1", alias).fetch(mylimit)
events = fp_events.append(sp_events)
但是,当我尝试使用 for 循环 for event in events: 遍历这些事件时,我在该行收到 TypeError: 'NoneType' object is not iterable 错误。我怀疑这与我尝试执行的附加操作有关,尽管我不完全确定。
这些事件也有一个 datetime 属性...如何按时间降序对结果事件列表进行排序?虽然我可以在上面的两个查询中使用ORDER BY time DESC,但不一定保证它们的合并会被排序。
我还应该提到,Event 表的 firstPlayer 和 secondPlayer 属性是互斥的(没有事件将 firstPlayer 和 secondPlayer 设置为同一个玩家)。
谢谢!
【问题讨论】:
-
您总是想要这些查询的整个结果集,还是只想要它们组合的前 n 个结果?如果是后者,那么通过合并操作可以更有效地完成此操作,而不是获取所有结果并对其进行排序。
-
仅供参考:调用
append的结果是None。
标签: python google-app-engine gql