Python列表:如何按时间戳排序? (App Engine相关)

时间:2010-01-17 16:53:54

标签: python google-app-engine

我的Feed模型中有十个实体(这是App Engine模型)

class Feed(db.Model):
  sometext = db.StringProperty()
  timestamp = db.DateTimeProperty(auto_now=True)

list_of_keys = ["key1","key2","key3".... "key10"]

所以我使用db.key()方法调用我的实体:

feeds = db.keys(list_of_keys)
# this loop below prints the feed 
for feed in feeds:
  print humanizeTimeDiff(feed.timestamp) 

# humanizeTimeDiff is a function to change the raw timestamp into a human friendly
# version: eg-> 10 mins ago, 20 seconds ago

但现在,如何根据时间戳对Feed进行排序? (我希望最新的饲料位于顶部,而最旧的饲料位于底部)

我可以在原始时间戳上使用的任何排序功能? (我的粗略计划是根据原始时间戳进行排序,然后将时差差异化)

PS:我不打算使用GQL查询根据时间戳查询我的实体,因为我以键列表的形式获取输入。使用db.key()是一种更快的方法。

希望我提供足够的信息。希望听到您的想法/解决方案。

1 个答案:

答案 0 :(得分:10)

import operator

   ...

for feed in sorted(feeds, key=operator.attrgetter('timestamp'), reverse=True):
   print humanizeTimeDiff(feed.timestamp)