Sorting a list of dictionaries by dictionary key

Fredrik Lundh fredrik at pythonware.com
Wed May 3 15:07:41 CEST 2006


Nico Grubert wrote:

> I am looking for a way to sort a list containing dictionaries.
>
> This is my example list:
> [{'Title': 'ABC', 'from_datetime': DateTime('2006/04/25 12:45:00
> GMT+2')}, {'Title': 'DEF', 'from_datetime': DateTime('2006/04/18
> 12:45:00 GMT+2')}, {'Title': 'GHI', 'from_datetime':
> DateTime('2006/03/10 12:45:00 GMT+2')}]
>
> I want to sort the list by dictionary's key 'from_datetime' so the
> sorted list should be:
>
> [{'Title': 'GHI', 'from_datetime': DateTime('2006/03/10 12:45:00
> GMT+2')}, {'Title': 'DEF', 'from_datetime': DateTime('2006/04/18
> 12:45:00 GMT+2')}, {'Title': 'ABC', 'from_datetime':
> DateTime('2006/04/25 12:45:00 GMT+2')}]
>
> Any idea how I can sort this list?

assuming that DateTime returns something that compares correctly, you can
do something like:

    def sortkey(item):
        return item.get("from_datetime")

    data.sort(key=sortkey)

(assuming Python 2.4 or later)

</F> 






More information about the Python-list mailing list