From 87eacf88c3ee82f6fe3cf79c54672f6c64b7f3fb Mon Sep 17 00:00:00 2001 From: Jun Jiang Date: Fri, 13 Jan 2017 09:05:34 +0800 Subject: [PATCH] fix timestamp error in table view (#1960) --- superset/views.py | 4 +--- superset/viz.py | 11 +++++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/superset/views.py b/superset/views.py index cf06776c9..155570b01 100755 --- a/superset/views.py +++ b/superset/views.py @@ -5,7 +5,6 @@ from __future__ import unicode_literals from datetime import datetime, timedelta import json -import simplejson import logging import pickle import re @@ -1405,8 +1404,7 @@ class Superset(BaseSupersetView): status = 500 return Response( - simplejson.dumps( - payload, default=utils.json_int_dttm_ser, ignore_nan=True), + viz_obj.json_dumps(payload), status=status, mimetype="application/json") diff --git a/superset/viz.py b/superset/viz.py index 677f57a74..611555997 100755 --- a/superset/viz.py +++ b/superset/viz.py @@ -379,10 +379,7 @@ class BaseViz(object): payload['cached_dttm'] = datetime.now().isoformat().split('.')[0] logging.info("Caching for the next {} seconds".format( cache_timeout)) - data = json.dumps( - payload, - default=utils.json_int_dttm_ser, ignore_nan=True - ) + data = self.json_dumps(payload) if PY3: data = bytes(data, 'utf-8') try: @@ -399,6 +396,9 @@ class BaseViz(object): payload['is_cached'] = is_cached return payload + def json_dumps(self, obj): + return json.dumps(obj, default=utils.json_int_dttm_ser, ignore_nan=True) + @property def data(self): """This is the data object serialized to the js layer""" @@ -538,6 +538,9 @@ class TableViz(BaseViz): columns=list(df.columns), ) + def json_dumps(self, obj): + return json.dumps(obj, default=utils.json_iso_dttm_ser) + class PivotTableViz(BaseViz):