Analitycs

четверг, 15 сентября 2011 г.

Как исправить ошибку Python datetime.datetime() is not JSON serializable?

Немного о сериализации через simplejson даты/времени, полученной из MySQL

При попытке сдампить результат из fetchall - чтобы отдать данные наружу во фронтендовский в Javascript в стиле

            sql  ='SELECT * FROM xxx WHERE id=%d'                                                          
            self._query(sql % id)
            data = self._cursor.fetchall()

получаем Exception

datetime.datetime(2011, 9, 14, 10, 18, 57) is not JSON serializable

Исправляется дополнительным форматом через лямбда-функцию

            dthandler = lambda obj: obj.isoformat() if isinstance(obj, datetime) else None
            response = json.dumps(data, ensure_ascii=False, default=dthandler)
Найдено, как водится - на StackOverflow

1 комментарий: