summaryrefslogtreecommitdiff
path: root/tablib/formats/_json.py
diff options
context:
space:
mode:
Diffstat (limited to 'tablib/formats/_json.py')
-rw-r--r--tablib/formats/_json.py15
1 files changed, 6 insertions, 9 deletions
diff --git a/tablib/formats/_json.py b/tablib/formats/_json.py
index a3d6cc3..bbd2c96 100644
--- a/tablib/formats/_json.py
+++ b/tablib/formats/_json.py
@@ -3,36 +3,33 @@
""" Tablib - JSON Support
"""
import decimal
+import json
+from uuid import UUID
import tablib
-try:
- import ujson as json
-except ImportError:
- import json
title = 'json'
extensions = ('json', 'jsn')
-def date_handler(obj):
- if isinstance(obj, decimal.Decimal):
+def serialize_objects_handler(obj):
+ if isinstance(obj, decimal.Decimal) or isinstance(obj, UUID):
return str(obj)
elif hasattr(obj, 'isoformat'):
return obj.isoformat()
else:
return obj
- # return obj.isoformat() if hasattr(obj, 'isoformat') else obj
def export_set(dataset):
"""Returns JSON representation of Dataset."""
- return json.dumps(dataset.dict, default=date_handler)
+ return json.dumps(dataset.dict, default=serialize_objects_handler)
def export_book(databook):
"""Returns JSON representation of Databook."""
- return json.dumps(databook._package(), default=date_handler)
+ return json.dumps(databook._package(), default=serialize_objects_handler)
def import_set(dset, in_stream):