Managed to get a dictionary to sort on multiple columns using a tuple to set the sort order (see below). However how can I control that column "date" orders descending and the column "name" orders ascending.
Thanks import datetime import pprint import operator faUserFormInput = {'DDPageSortOrder': 'PageAge'} mypages = ["PageName","PageAge","PageAge"] gaValidSortOrder = [ {'OrderType': 'PageName', 'SortOrder': ('name')}, {'OrderType': 'PageAge', 'SortOrder': ('date','name')}, {'OrderType': 'PageAuthor', 'SortOrder': ('username','date')} ] entries = [{'name': 'ZZ2', 'username': 'ZZ3', 'date': datetime.datetime (2008, 9, 30, 16, 43, 54)},{'name': 'ZZ2', 'username': 'ZZ5','date': datetime.datetime(2008, 9, 30, 16, 43, 54)},{'name': 'ZZ2', 'username': 'ZZ1', 'date': datetime.datetime(2007, 9, 30, 16, 43, 54)}, {'name': 'AA2', 'username': 'AA2','date': datetime.datetime(2007, 9, 30, 16, 43, 54)}] sortorderarr = ('name','date') #if ("DDPageSortOrder" in faUserFormInput): for item in gaValidSortOrder: print "1=%s" % (item["OrderType"]) print "2=%s" % (faUserFormInput["DDPageSortOrder"]) if (item["OrderType"] == faUserFormInput["DDPageSortOrder"]): sortorderarr = item["SortOrder"] #sortorderarr = '\','.join(sortorder) print sortorderarr pp = pprint.PrettyPrinter(depth=2) pp.pprint(entries) bob = entries bob.sort(key=operator.itemgetter(*sortorderarr),reverse=True) pp.pprint(bob) -- http://mail.python.org/mailman/listinfo/python-list