Python:如何通过两个字段对dicts数组进行排序?

时间:2013-03-06 21:36:25

标签: python arrays sorting

我对Python有点新...

我通过读取包含JSON消息的文件获得了一系列dicts,即使用以下内容:

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

每个JSON消息都包含三个字段:“date”,“type”和“location”。我需要先按日期对数组进行排序,然后按相同日期的每个块中的类型进行排序,然后按相同类型的每个块中的位置进行排序。我怎样才能做到这一点?太多了!

1 个答案:

答案 0 :(得分:9)

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

元组首先按第一个元素自然排序,然后按后续元素排序。