J Wolfe wrote: > I would like to sort this dictionary by the values of the inner > dictionary ‘ob’ key.
Python's built-in dictionary is unsorted by design. > mydict = > {’WILW1′: {’fx’: ‘8.1′, ‘obtime’: ‘2009-11-07 06:45:00′, ‘ob’: ‘6.9′}, > ‘GRRW1′: {’fx’: ‘12.8′, ‘obtime’: ‘2009-11-07 04:15:00′, ‘ob’: ‘6.7′}, > ‘NASW1′: {’fx’: ‘6.8′, ‘obtime’: ‘2009-11-07 06:30:00′, ‘ob’: ‘7.1′} > } > > In this case, this would become: > > mysorteddic = > {’NASW1′: {’fx’: ‘6.8′, ‘obtime’: ‘2009-11-07 06:30:00′, ‘ob’: ‘7.1′}, > ‘WILW1′: {’fx’: ‘8.1′, ‘obtime’: ‘2009-11-07 06:45:00′, ‘ob’: ‘6.9′}, > ‘GRRW1′: {’fx’: ‘12.8′, ‘obtime’: ‘2009-11-07 04:15:00′, ‘ob’: ‘6.7′} > } > > I have had no luck in trying to figure this out. I am restricted to > using python 2.4.3. > > Any help would be appreciated! You may be able to work around that limitation by putting the dict items into a list and sort that: >>> for item in sorted(mydict.items(), key=lambda (k, v): float(v["ob"]), reverse=True): ... print item ... ('NASW1', {'fx': '6.8', 'obtime': '2009-11-07 06:30:00', 'ob': '7.1'}) ('WILW1', {'fx': '8.1', 'obtime': '2009-11-07 06:45:00', 'ob': '6.9'}) ('GRRW1', {'fx': '12.8', 'obtime': '2009-11-07 04:15:00', 'ob': '6.7'}) Peter -- http://mail.python.org/mailman/listinfo/python-list