如何根据时间(以毫秒为单位)对JSON列表进行排序?

时间:2018-09-06 08:08:11

标签: python json sorting

我是这里的新手,也是Python的初学者。我使用请求检索了JSON列表,其输出示例为:

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

我想根据最旧的(或最低的StartTime)将其排序到一个新变量,在此我可以打印并正确设置其格式,但我不知道该怎么做

1 个答案:

答案 0 :(得分:2)

通过键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'])