I'm looking for a way to sort a dict of dicts by dict containg the most values. This is the original dict:
我正在寻找一种方法来通过包含最多值的字典对字典进行排序。这是原始的词典:
test = {u'Beta': {
u'SW Engineering': {
u'Resolved': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3, u'2017-10-07 09:54:33': 1},
u'In Progress': {u'2017-10-06 08:04:15': 9, u'2017-10-15 00:19:35': 12, u'2017-10-11 00:19:29': 11, u'2017-10-09 00:19:00': 9, u'2017-10-14 00:21:09': 12, u'2017-10-12 00:19:52': 11, u'2017-10-08 00:18:58': 9, u'2017-10-10 00:19:31': 10, u'2017-10-13 00:19:28': 11, u'2017-10-07 09:54:33': 9},
u'In Testing': {u'2017-10-06 08:04:15': 7, u'2017-10-15 00:19:35': 7, u'2017-10-11 00:19:29': 7, u'2017-10-09 00:19:00': 7, u'2017-10-14 00:21:09': 7, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 7, u'2017-10-10 00:19:31': 7, u'2017-10-13 00:19:28': 7, u'2017-10-07 09:54:33': 7},
u'Reopened': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 1, u'2017-10-11 00:19:29': 1, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 1, u'2017-10-12 00:19:52': 1, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 1, u'2017-10-13 00:19:28': 1, u'2017-10-07 09:54:33': 1},
u'Closed': {u'2017-10-06 08:04:15': 17, u'2017-10-15 00:19:35': 18, u'2017-10-11 00:19:29': 18, u'2017-10-09 00:19:00': 17, u'2017-10-14 00:21:09': 18, u'2017-10-12 00:19:52': 18, u'2017-10-08 00:18:58': 17, u'2017-10-10 00:19:31': 18, u'2017-10-13 00:19:28': 18, u'2017-10-07 09:54:33': 17},
u'Open': {u'2017-10-06 08:04:15': 5, u'2017-10-15 00:19:35': 8, u'2017-10-11 00:19:29': 8, u'2017-10-09 00:19:00': 5, u'2017-10-14 00:21:09': 8, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 5, u'2017-10-10 00:19:31': 8, u'2017-10-13 00:19:28': 8, u'2017-10-07 09:54:33': 5}},
u'DSP Engineering': {
u'In Progress': {u'2017-10-15 00:19:35': 1, u'2017-10-14 00:21:09': 1}}}}
And this is how I want it to look like:
这就是我希望它看起来像:
test = {u'Beta': {
u'DSP Engineering': {
u'In Progress': {u'2017-10-15 00:19:35': 1, u'2017-10-14 00:21:09': 1}},
u'SW Engineering': {
u'Resolved': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3, u'2017-10-07 09:54:33': 1},
u'In Progress': {u'2017-10-06 08:04:15': 9, u'2017-10-15 00:19:35': 12, u'2017-10-11 00:19:29': 11, u'2017-10-09 00:19:00': 9, u'2017-10-14 00:21:09': 12, u'2017-10-12 00:19:52': 11, u'2017-10-08 00:18:58': 9, u'2017-10-10 00:19:31': 10, u'2017-10-13 00:19:28': 11, u'2017-10-07 09:54:33': 9},
u'In Testing': {u'2017-10-06 08:04:15': 7, u'2017-10-15 00:19:35': 7, u'2017-10-11 00:19:29': 7, u'2017-10-09 00:19:00': 7, u'2017-10-14 00:21:09': 7, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 7, u'2017-10-10 00:19:31': 7, u'2017-10-13 00:19:28': 7, u'2017-10-07 09:54:33': 7},
u'Reopened': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 1, u'2017-10-11 00:19:29': 1, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 1, u'2017-10-12 00:19:52': 1, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 1, u'2017-10-13 00:19:28': 1, u'2017-10-07 09:54:33': 1},
u'Closed': {u'2017-10-06 08:04:15': 17, u'2017-10-15 00:19:35': 18, u'2017-10-11 00:19:29': 18, u'2017-10-09 00:19:00': 17, u'2017-10-14 00:21:09': 18, u'2017-10-12 00:19:52': 18, u'2017-10-08 00:18:58': 17, u'2017-10-10 00:19:31': 18, u'2017-10-13 00:19:28': 18, u'2017-10-07 09:54:33': 17},
u'Open': {u'2017-10-06 08:04:15': 5, u'2017-10-15 00:19:35': 8, u'2017-10-11 00:19:29': 8, u'2017-10-09 00:19:00': 5, u'2017-10-14 00:21:09': 8, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 5, u'2017-10-10 00:19:31': 8, u'2017-10-13 00:19:28': 8, u'2017-10-07 09:54:33': 5}}}}
2 个解决方案
#1
1
An example how to do it with OrderedDict
.
如何使用OrderedDict执行此操作的示例。
from collections import OrderedDict
import json
test = {u'Beta': {
u'SW Engineering': {
u'Resolved': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3, u'2017-10-07 09:54:33': 1},
u'In Progress': {u'2017-10-06 08:04:15': 9, u'2017-10-15 00:19:35': 12, u'2017-10-11 00:19:29': 11, u'2017-10-09 00:19:00': 9, u'2017-10-14 00:21:09': 12, u'2017-10-12 00:19:52': 11, u'2017-10-08 00:18:58': 9, u'2017-10-10 00:19:31': 10, u'2017-10-13 00:19:28': 11, u'2017-10-07 09:54:33': 9},
u'In Testing': {u'2017-10-06 08:04:15': 7, u'2017-10-15 00:19:35': 7, u'2017-10-11 00:19:29': 7, u'2017-10-09 00:19:00': 7, u'2017-10-14 00:21:09': 7, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 7, u'2017-10-10 00:19:31': 7, u'2017-10-13 00:19:28': 7, u'2017-10-07 09:54:33': 7},
u'Reopened': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 1, u'2017-10-11 00:19:29': 1, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 1, u'2017-10-12 00:19:52': 1, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 1, u'2017-10-13 00:19:28': 1, u'2017-10-07 09:54:33': 1},
u'Closed': {u'2017-10-06 08:04:15': 17, u'2017-10-15 00:19:35': 18, u'2017-10-11 00:19:29': 18, u'2017-10-09 00:19:00': 17, u'2017-10-14 00:21:09': 18, u'2017-10-12 00:19:52': 18, u'2017-10-08 00:18:58': 17, u'2017-10-10 00:19:31': 18, u'2017-10-13 00:19:28': 18, u'2017-10-07 09:54:33': 17},
u'Open': {u'2017-10-06 08:04:15': 5, u'2017-10-15 00:19:35': 8, u'2017-10-11 00:19:29': 8, u'2017-10-09 00:19:00': 5, u'2017-10-14 00:21:09': 8, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 5, u'2017-10-10 00:19:31': 8, u'2017-10-13 00:19:28': 8, u'2017-10-07 09:54:33': 5}},
u'DSP Engineering': {
u'In Progress': {u'2017-10-15 00:19:35': 1, u'2017-10-14 00:21:09': 1}}}}
engineers_tasks = []
for engineer, tasks in test['Beta'].items():
tasks_sorted = sorted(tasks.items(), key=lambda k: len(k[1]), reverse=True)
min_tasks = len(tasks_sorted[-1][1])
engineers_tasks.append((engineer, OrderedDict(tasks_sorted), min_tasks))
engineers_tasks = sorted(engineers_tasks, key=lambda k: k[-1])
engineers_tasks = OrderedDict([tasks[:-1] for tasks in engineers_tasks])
test_sorted = {'Beta': engineers_tasks}
print json.dumps(test_sorted, indent=2)
#2
-1
This is not best solution but you can try. For testing purpose i added one more item in the dict which have max elements called "SW Engineering33"
这不是最佳解决方案,但您可以尝试。出于测试目的,我在dict中添加了一个项目,其中包含名为“SW Engineering33”的最大元素
from collections import OrderedDict
test = {u'Beta': {
u'SW Engineering': {
u'Resolved': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3, u'2017-10-07 09:54:33': 1},
u'In Progress': {u'2017-10-06 08:04:15': 9, u'2017-10-15 00:19:35': 12, u'2017-10-11 00:19:29': 11, u'2017-10-09 00:19:00': 9, u'2017-10-14 00:21:09': 12, u'2017-10-12 00:19:52': 11, u'2017-10-08 00:18:58': 9, u'2017-10-10 00:19:31': 10, u'2017-10-13 00:19:28': 11, u'2017-10-07 09:54:33': 9},
u'In Testing': {u'2017-10-06 08:04:15': 7, u'2017-10-15 00:19:35': 7, u'2017-10-11 00:19:29': 7, u'2017-10-09 00:19:00': 7, u'2017-10-14 00:21:09': 7, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 7, u'2017-10-10 00:19:31': 7, u'2017-10-13 00:19:28': 7, u'2017-10-07 09:54:33': 7},
u'Reopened': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 1, u'2017-10-11 00:19:29': 1, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 1, u'2017-10-12 00:19:52': 1, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 1, u'2017-10-13 00:19:28': 1, u'2017-10-07 09:54:33': 1},
u'Closed': {u'2017-10-06 08:04:15': 17, u'2017-10-15 00:19:35': 18, u'2017-10-11 00:19:29': 18, u'2017-10-09 00:19:00': 17, u'2017-10-14 00:21:09': 18, u'2017-10-12 00:19:52': 18, u'2017-10-08 00:18:58': 17, u'2017-10-10 00:19:31': 18, u'2017-10-13 00:19:28': 18, u'2017-10-07 09:54:33': 17},
u'Open': {u'2017-10-06 08:04:15': 5, u'2017-10-15 00:19:35': 8, u'2017-10-11 00:19:29': 8, u'2017-10-09 00:19:00': 5, u'2017-10-14 00:21:09': 8, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 5, u'2017-10-10 00:19:31': 8, u'2017-10-13 00:19:28': 8, u'2017-10-07 09:54:33': 5}},
u'SW Engineering33': {
u'Resolved': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2,
u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3,
u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3,
u'2017-10-07 09:54:33': 1},
u'Resolved43': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2,
u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3,
u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3,
u'2017-10-07 09:54:33': 1},
u'In Progress': {u'2017-10-06 08:04:15': 9, u'2017-10-15 00:19:35': 12, u'2017-10-11 00:19:29': 11,
u'2017-10-09 00:19:00': 9, u'2017-10-14 00:21:09': 12, u'2017-10-12 00:19:52': 11,
u'2017-10-08 00:18:58': 9, u'2017-10-10 00:19:31': 10, u'2017-10-13 00:19:28': 11,
u'2017-10-07 09:54:33': 9},
u'In Testing': {u'2017-10-06 08:04:15': 7, u'2017-10-15 00:19:35': 7, u'2017-10-11 00:19:29': 7,
u'2017-10-09 00:19:00': 7, u'2017-10-14 00:21:09': 7, u'2017-10-12 00:19:52': 7,
u'2017-10-08 00:18:58': 7, u'2017-10-10 00:19:31': 7, u'2017-10-13 00:19:28': 7,
u'2017-10-07 09:54:33': 7},
u'Reopened': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 1, u'2017-10-11 00:19:29': 1,
u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 1, u'2017-10-12 00:19:52': 1,
u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 1, u'2017-10-13 00:19:28': 1,
u'2017-10-07 09:54:33': 1},
u'Closed': {u'2017-10-06 08:04:15': 17, u'2017-10-15 00:19:35': 18, u'2017-10-11 00:19:29': 18,
u'2017-10-09 00:19:00': 17, u'2017-10-14 00:21:09': 18, u'2017-10-12 00:19:52': 18,
u'2017-10-08 00:18:58': 17, u'2017-10-10 00:19:31': 18, u'2017-10-13 00:19:28': 18,
u'2017-10-07 09:54:33': 17},
u'Open': {u'2017-10-06 08:04:15': 5, u'2017-10-15 00:19:35': 8, u'2017-10-11 00:19:29': 8,
u'2017-10-09 00:19:00': 5, u'2017-10-14 00:21:09': 8, u'2017-10-12 00:19:52': 7,
u'2017-10-08 00:18:58': 5, u'2017-10-10 00:19:31': 8, u'2017-10-13 00:19:28': 8,
u'2017-10-07 09:54:33': 5}},
u'DSP Engineering': {
u'In Progress': {u'2017-10-15 00:19:35': 1, u'2017-10-14 00:21:09': 1}}}}
capture_len={}
for key,value in test.items():
for key1,value1 in value.items():
for key3,value3 in value1.items():
if key1 not in capture_len:
capture_len[key1]=[value3]
else:
capture_len[key1].append(value3)
for_len={key:len(value) for key,value in capture_len.items()}
sorted_dict=sorted(for_len, key=for_len.get)
ordered_dict=OrderedDict()
for key,value in test.items():
for k in sorted_dict:
for key1,value1 in value.items():
if k==key1:
ordered_dict[k]=value1
final_dict={}
for key,value in ordered_dict.items():
for key2,value2 in test.items():
if key2 not in final_dict:
final_dict[key2]=[(key,value)]
else:
final_dict[key2].append((key,value))
print (final_dict)
#1
1
An example how to do it with OrderedDict
.
如何使用OrderedDict执行此操作的示例。
from collections import OrderedDict
import json
test = {u'Beta': {
u'SW Engineering': {
u'Resolved': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3, u'2017-10-07 09:54:33': 1},
u'In Progress': {u'2017-10-06 08:04:15': 9, u'2017-10-15 00:19:35': 12, u'2017-10-11 00:19:29': 11, u'2017-10-09 00:19:00': 9, u'2017-10-14 00:21:09': 12, u'2017-10-12 00:19:52': 11, u'2017-10-08 00:18:58': 9, u'2017-10-10 00:19:31': 10, u'2017-10-13 00:19:28': 11, u'2017-10-07 09:54:33': 9},
u'In Testing': {u'2017-10-06 08:04:15': 7, u'2017-10-15 00:19:35': 7, u'2017-10-11 00:19:29': 7, u'2017-10-09 00:19:00': 7, u'2017-10-14 00:21:09': 7, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 7, u'2017-10-10 00:19:31': 7, u'2017-10-13 00:19:28': 7, u'2017-10-07 09:54:33': 7},
u'Reopened': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 1, u'2017-10-11 00:19:29': 1, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 1, u'2017-10-12 00:19:52': 1, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 1, u'2017-10-13 00:19:28': 1, u'2017-10-07 09:54:33': 1},
u'Closed': {u'2017-10-06 08:04:15': 17, u'2017-10-15 00:19:35': 18, u'2017-10-11 00:19:29': 18, u'2017-10-09 00:19:00': 17, u'2017-10-14 00:21:09': 18, u'2017-10-12 00:19:52': 18, u'2017-10-08 00:18:58': 17, u'2017-10-10 00:19:31': 18, u'2017-10-13 00:19:28': 18, u'2017-10-07 09:54:33': 17},
u'Open': {u'2017-10-06 08:04:15': 5, u'2017-10-15 00:19:35': 8, u'2017-10-11 00:19:29': 8, u'2017-10-09 00:19:00': 5, u'2017-10-14 00:21:09': 8, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 5, u'2017-10-10 00:19:31': 8, u'2017-10-13 00:19:28': 8, u'2017-10-07 09:54:33': 5}},
u'DSP Engineering': {
u'In Progress': {u'2017-10-15 00:19:35': 1, u'2017-10-14 00:21:09': 1}}}}
engineers_tasks = []
for engineer, tasks in test['Beta'].items():
tasks_sorted = sorted(tasks.items(), key=lambda k: len(k[1]), reverse=True)
min_tasks = len(tasks_sorted[-1][1])
engineers_tasks.append((engineer, OrderedDict(tasks_sorted), min_tasks))
engineers_tasks = sorted(engineers_tasks, key=lambda k: k[-1])
engineers_tasks = OrderedDict([tasks[:-1] for tasks in engineers_tasks])
test_sorted = {'Beta': engineers_tasks}
print json.dumps(test_sorted, indent=2)
#2
-1
This is not best solution but you can try. For testing purpose i added one more item in the dict which have max elements called "SW Engineering33"
这不是最佳解决方案,但您可以尝试。出于测试目的,我在dict中添加了一个项目,其中包含名为“SW Engineering33”的最大元素
from collections import OrderedDict
test = {u'Beta': {
u'SW Engineering': {
u'Resolved': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3, u'2017-10-07 09:54:33': 1},
u'In Progress': {u'2017-10-06 08:04:15': 9, u'2017-10-15 00:19:35': 12, u'2017-10-11 00:19:29': 11, u'2017-10-09 00:19:00': 9, u'2017-10-14 00:21:09': 12, u'2017-10-12 00:19:52': 11, u'2017-10-08 00:18:58': 9, u'2017-10-10 00:19:31': 10, u'2017-10-13 00:19:28': 11, u'2017-10-07 09:54:33': 9},
u'In Testing': {u'2017-10-06 08:04:15': 7, u'2017-10-15 00:19:35': 7, u'2017-10-11 00:19:29': 7, u'2017-10-09 00:19:00': 7, u'2017-10-14 00:21:09': 7, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 7, u'2017-10-10 00:19:31': 7, u'2017-10-13 00:19:28': 7, u'2017-10-07 09:54:33': 7},
u'Reopened': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 1, u'2017-10-11 00:19:29': 1, u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 1, u'2017-10-12 00:19:52': 1, u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 1, u'2017-10-13 00:19:28': 1, u'2017-10-07 09:54:33': 1},
u'Closed': {u'2017-10-06 08:04:15': 17, u'2017-10-15 00:19:35': 18, u'2017-10-11 00:19:29': 18, u'2017-10-09 00:19:00': 17, u'2017-10-14 00:21:09': 18, u'2017-10-12 00:19:52': 18, u'2017-10-08 00:18:58': 17, u'2017-10-10 00:19:31': 18, u'2017-10-13 00:19:28': 18, u'2017-10-07 09:54:33': 17},
u'Open': {u'2017-10-06 08:04:15': 5, u'2017-10-15 00:19:35': 8, u'2017-10-11 00:19:29': 8, u'2017-10-09 00:19:00': 5, u'2017-10-14 00:21:09': 8, u'2017-10-12 00:19:52': 7, u'2017-10-08 00:18:58': 5, u'2017-10-10 00:19:31': 8, u'2017-10-13 00:19:28': 8, u'2017-10-07 09:54:33': 5}},
u'SW Engineering33': {
u'Resolved': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2,
u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3,
u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3,
u'2017-10-07 09:54:33': 1},
u'Resolved43': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 3, u'2017-10-11 00:19:29': 2,
u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 3, u'2017-10-12 00:19:52': 3,
u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 2, u'2017-10-13 00:19:28': 3,
u'2017-10-07 09:54:33': 1},
u'In Progress': {u'2017-10-06 08:04:15': 9, u'2017-10-15 00:19:35': 12, u'2017-10-11 00:19:29': 11,
u'2017-10-09 00:19:00': 9, u'2017-10-14 00:21:09': 12, u'2017-10-12 00:19:52': 11,
u'2017-10-08 00:18:58': 9, u'2017-10-10 00:19:31': 10, u'2017-10-13 00:19:28': 11,
u'2017-10-07 09:54:33': 9},
u'In Testing': {u'2017-10-06 08:04:15': 7, u'2017-10-15 00:19:35': 7, u'2017-10-11 00:19:29': 7,
u'2017-10-09 00:19:00': 7, u'2017-10-14 00:21:09': 7, u'2017-10-12 00:19:52': 7,
u'2017-10-08 00:18:58': 7, u'2017-10-10 00:19:31': 7, u'2017-10-13 00:19:28': 7,
u'2017-10-07 09:54:33': 7},
u'Reopened': {u'2017-10-06 08:04:15': 1, u'2017-10-15 00:19:35': 1, u'2017-10-11 00:19:29': 1,
u'2017-10-09 00:19:00': 1, u'2017-10-14 00:21:09': 1, u'2017-10-12 00:19:52': 1,
u'2017-10-08 00:18:58': 1, u'2017-10-10 00:19:31': 1, u'2017-10-13 00:19:28': 1,
u'2017-10-07 09:54:33': 1},
u'Closed': {u'2017-10-06 08:04:15': 17, u'2017-10-15 00:19:35': 18, u'2017-10-11 00:19:29': 18,
u'2017-10-09 00:19:00': 17, u'2017-10-14 00:21:09': 18, u'2017-10-12 00:19:52': 18,
u'2017-10-08 00:18:58': 17, u'2017-10-10 00:19:31': 18, u'2017-10-13 00:19:28': 18,
u'2017-10-07 09:54:33': 17},
u'Open': {u'2017-10-06 08:04:15': 5, u'2017-10-15 00:19:35': 8, u'2017-10-11 00:19:29': 8,
u'2017-10-09 00:19:00': 5, u'2017-10-14 00:21:09': 8, u'2017-10-12 00:19:52': 7,
u'2017-10-08 00:18:58': 5, u'2017-10-10 00:19:31': 8, u'2017-10-13 00:19:28': 8,
u'2017-10-07 09:54:33': 5}},
u'DSP Engineering': {
u'In Progress': {u'2017-10-15 00:19:35': 1, u'2017-10-14 00:21:09': 1}}}}
capture_len={}
for key,value in test.items():
for key1,value1 in value.items():
for key3,value3 in value1.items():
if key1 not in capture_len:
capture_len[key1]=[value3]
else:
capture_len[key1].append(value3)
for_len={key:len(value) for key,value in capture_len.items()}
sorted_dict=sorted(for_len, key=for_len.get)
ordered_dict=OrderedDict()
for key,value in test.items():
for k in sorted_dict:
for key1,value1 in value.items():
if k==key1:
ordered_dict[k]=value1
final_dict={}
for key,value in ordered_dict.items():
for key2,value2 in test.items():
if key2 not in final_dict:
final_dict[key2]=[(key,value)]
else:
final_dict[key2].append((key,value))
print (final_dict)