我有一些代码可以从API收集字典对象列表。词典关键字之一是在操作中看到规则的last_timestamp。我希望能够按此值进行排序,但是,我使用了常用的方法对此进行排序,但均无效。
a = sorted(all_rules, key=itemgetter('last_timestamp'))
返回错误
a = sorted(all_rules, key=itemgetter('last_timestamp'))
TypeError: list indices must be integers, not str
all_rules是词典列表。
答案 0 :(得分:0)
我尝试了以下方法,但效果很好:
all_rules = [{'last_timestamp': 1}, {'last_timestamp': 0}, {'last_timestamp': 4}]
在您的示例中,问题可能在于all_rules
是列表的集合,而不是字典的集合。在这种情况下,sorted
尝试将itemgetter('last_timestamp')
应用于每个列表,从而引发TypeError
。
如果您应用相同的逻辑,其中all_rules
是词典的集合,则它将返回一个按其'last_timestamp'
值排序的词典列表,只要该值是可比较的(即具有{ {1}}方法已定义),这是时间戳和字符串必须满足的要求。