2013-03-06 145 views
5

我有些新的Python的...Python:如何通过两个字段对数组进行排序?

我有类型的字典,我得到了通过读取包含JSON消息的文件,即使用像这样的数组:

import json 
ws = [] 
with open('messages.txt', 'r') as f: 
    for line in f: 
     data = json.loads(line) 
     ws.append(data) 

每个JSON消息有,除其他事项外,还有三个领域:“日期”和“类型”和“地点”。我需要按日期排序数组,然后在每个相同日期块内输入数据,然后按相同类型的每个块内的位置进行排序。我怎样才能做到这一点?太多了!

+0

试试这个:http://stackoverflow.com/questions/1143671/python-sorting-list-of-dictionaries-by-multiple-keys/1144405#1144405 – hughdbrown 2013-03-06 22:14:47

+0

虽然这里不需要,但很高兴知道python的排序[稳定](http://wiki.python.org/moin/HowTo/Sorting/#Sort_Stability_and_Complex_Sorts)。 – 2013-03-06 22:17:22

回答

9
ws.sort(key=lambda datum: (datum['date'], datum['type'], datum['location'])) 

元组首先由第一个元素自然排序,然后由后继元素排序。

相关问题