首页 > 解决方案 > 如何根据时间(以毫秒为单位)对 JSON 列表进行排序?

问题描述

我是新来的,也是 Python 的初学者。我使用请求检索了一个 JSON 列表,输出示例如下:

    {"data":[{"Id":"12345",
              "Name":"C123",
              "StartTime": 153507240000,
              "EndTime": 1535077800000},
             {"Id": "12346",
              "Name": "C124",
              "StartTime": 1530839700000,
              "EndTime": 1530864000000}
             ]}

我想根据最旧的(或最低的 StartTime)将它排序到一个新变量中,我打印出来并正确格式化它,但我不知道该怎么做

标签: pythonjsonsorting

解决方案


sort带键的使用方法lambda e: e['StartTime']

>>> d = {"data":[{"Id":"12345",
...               "Name":"C123",
...               "StartTime": 153507240000,
...               "EndTime": 1535077800000},
...              {"Id": "12346",
...               "Name": "C124",
...               "StartTime": 1530839700000,
...               "EndTime": 1530864000000}
...              ]}
>>>
>>> d['data'].sort(key=lambda e: e['StartTime'])
>>>
>>> pprint(d)
{'data': [{'EndTime': 1535077800000,
           'Id': '12345',
           'Name': 'C123',
           'StartTime': 153507240000},
          {'EndTime': 1530864000000,
           'Id': '12346',
           'Name': 'C124',
           'StartTime': 1530839700000}]}

要在新变量中获取结果,请使用sorted

sorted(d['data'], key=lambda e: e['StartTime'])

推荐阅读