fork(1) download
  1. from collections import OrderedDict
  2.  
  3. d = {
  4. 'Benefits': {
  5. 1: {
  6. 'BEN1': {
  7. 'D': [{'description': 'D1'}],
  8. 'C': [{'description': 'C1'}]
  9. }
  10. },
  11. 2: {
  12. 'BEN2': {
  13. 'D': [{'description': 'D2'}],
  14. 'C': [{'description': 'C2'}]
  15. }
  16. }
  17. }
  18. }
  19.  
  20. def sort_dict(d):
  21. items = [[k, v] for k, v in sorted(d.items(), key=lambda x: x[0])]
  22. for item in items:
  23. if isinstance(item[1], dict):
  24. item[1] = sort_dict(item[1])
  25. return OrderedDict(items)
  26. #return dict(items)
  27.  
  28. print(sort_dict(d))
  29.  
Success #stdin #stdout 0.02s 9328KB
stdin
Standard input is empty
stdout
OrderedDict([('Benefits', OrderedDict([(1, OrderedDict([('BEN1', OrderedDict([('C', [{'description': 'C1'}]), ('D', [{'description': 'D1'}])]))])), (2, OrderedDict([('BEN2', OrderedDict([('C', [{'description': 'C2'}]), ('D', [{'description': 'D2'}])]))]))]))])