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

5

我很新于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",我需要首先按日期对数组进行排序,然后在每个相同日期的块内按类型排序,最后在每个相同类型的块内按位置排序。我该怎么做呢?非常感谢!

试试这个:https://dev59.com/pHM_5IYBdhLWcg3w-4dg#1144405 - hughdbrown
虽然这里不需要,但知道Python的排序是稳定的也是很好的。 - Lauritz V. Thaulow
1个回答

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接