I have a very weird issue I cannot resolve regarding sorting a dictionary based on a DAL query. The code below runs as expected on my dev box, but emits an error when i push to production (both environments are running the same version of web2py 2.0.0 and python v2.7.3.
... results = {} for row in set: label = str(row.created_on.strftime('%b-%y')) #works but screw up ordering try: results[label] = {'yymm_count': results[label]['yymm_count'] + 1, 'created': row.created_on} except KeyError, e: results[label] = {'yymm_count': 1} # jump thru hopops to sort the dict sortedresults = collections.OrderedDict(sorted(results.items(), key=lambda x: x[1]['created'])) return results The error is in the sortedresults line. I am trying to sort the results dict by the actual time and preserve a user friendly label as the key (i.e "Jan-12"). The ordering is needed because this is being displayed in a bar chart. Note the results dict is being built correctly AND contains the created filed. To repeat this works on the dev box using sqllitre, the prod env uses postgress - could this affect pure python? On production I get a key error as follows: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Traceback (most recent call last): File "/home/dlwatey/webapps/web2py/web2py/gluon/restricted.py", line 205, in restricted exec ccode in environment File "/home/dlwatey/webapps/web2py/web2py/applications/COPSIS/controllers/metrics.py" <https://www.meetingmonkey.net/admin/default/edit/COPSIS/controllers/metrics.py>, line 130, in <module> File "/home/dlwatey/webapps/web2py/web2py/gluon/globals.py", line 175, in <lambda> self._caller = lambda f: f() File "/home/dlwatey/webapps/web2py/web2py/applications/COPSIS/controllers/metrics.py" <https://www.meetingmonkey.net/admin/default/edit/COPSIS/controllers/metrics.py>, line 68, in data response_components["activity"] = data_logsbymonth() File "/home/dlwatey/webapps/web2py/web2py/applications/COPSIS/controllers/metrics.py" <https://www.meetingmonkey.net/admin/default/edit/COPSIS/controllers/metrics.py>, line 126, in data_logsbymonth sortedresults = collections.OrderedDict(sorted(results.items(), key=lambda x: x[1]['created'])) File "/home/dlwatey/webapps/web2py/web2py/applications/COPSIS/controllers/metrics.py" <https://www.meetingmonkey.net/admin/default/edit/COPSIS/controllers/metrics.py>, line 126, in <lambda> sortedresults = collections.OrderedDict(sorted(results.items(), key=lambda x: x[1]['created'])) KeyError: 'created' Any one have any ideas? --