按值对python中的嵌套字典进行排序

时间:2018-05-22 08:54:37

标签: python

这是我的词典:

 {{'count': 5, 'leftCount': 5, 'length': '5', 'submittedTime': 1526815239}, 

 {'count': 10, 'leftCount': 10, 'length': '5', 'submittedTime': 1526814198}, 

 {'count': 5, 'leftCount': 5, 'length': '25', 'submittedTime': 1526815326}, 

 {'count': 8, 'leftCount': 8, 'length': '25', 'submittedTime': 1526815326},

 {'count': 5, 'leftCount': 5, 'length': '30', 'submittedTime': 1526815239}}

我想按key =“submittedTime”的值对其进行排序。我不知道如何让它发挥作用。

我尝试了lambda,但我认为我做错了,因为结果完全一样。

2 个答案:

答案 0 :(得分:1)

您可能想要使用OrderedDict

from collections import OrderedDict 

d = {0: {'count': 5, 'leftCount': 5, 'length': '5', 'submittedTime': 
  1526815239}, 
 1: {'count': 10, 'leftCount': 10, 'length': '5', 'submittedTime': 
 1526814198}, 
 2: {'count': 5, 'leftCount': 5, 'length': '25', 'submittedTime': 
 1526815326}, 
 3: {'count': 8, 'leftCount': 8, 'length': '25', 'submittedTime': 
 1526815326},
 4: {'count': 5, 'leftCount': 5, 'length': '30', 'submittedTime': 
 1526815239}}

print(OrderedDict(sorted(d.items(), key=lambda t: t[1]['submittedTime'])))
#OrderedDict([(1, {'count': 10, 'leftCount': 10, 'length': '5', 'submittedTime': 1526814198}), (0, {'count': 5, 'leftCount': 5, 'length': '5', 'submittedTime': 1526815239}), (4, {'count': 5, 'leftCount': 5, 'length': '30', 'submittedTime': 1526815239}), (2, {'count': 5, 'leftCount': 5, 'length': '25', 'submittedTime': 1526815326}), (3, {'count': 8, 'leftCount': 8, 'length': '25', 'submittedTime': 1526815326})])

答案 1 :(得分:1)

尝试使用lambda

d = {0: {'count': 5, 'leftCount': 5, 'length': '5', 'submittedTime': 
1526815239},
1: {'count': 10, 'leftCount': 10, 'length': '5', 'submittedTime': 
1526814198},
2: {'count': 5, 'leftCount': 5, 'length': '25', 'submittedTime': 
1526815326},
3: {'count': 8, 'leftCount': 8, 'length': '25', 'submittedTime': 
1526815326},
4: {'count': 5, 'leftCount': 5, 'length': '30', 'submittedTime': 
1526815239}}
dd = sorted(d.items(),key=lambda x:x[1]['submittedTime'])