summaryrefslogtreecommitdiff
path: root/tablib
diff options
context:
space:
mode:
authorBruno Soares <brunomsss@gmail.com>2018-09-12 15:49:46 -0300
committerIuri de Silvio <iurisilvio@gmail.com>2018-09-12 15:49:46 -0300
commit3d5943a8a43a721bea1f3e33dc669a581a095c53 (patch)
tree3da30935c5803328f45e4cdaf4fd27a9e996a5e5 /tablib
parent38486231cc4dc46d1ff055a38fe7c236cbe5c8aa (diff)
downloadtablib-3d5943a8a43a721bea1f3e33dc669a581a095c53.tar.gz
Fix: Circular reference detected error (#332)
* Rename function name * Add uuid handler on json dumps * Add myself to authors
Diffstat (limited to 'tablib')
-rw-r--r--tablib/formats/_json.py10
1 files changed, 5 insertions, 5 deletions
diff --git a/tablib/formats/_json.py b/tablib/formats/_json.py
index a3d6cc3..a3b88f8 100644
--- a/tablib/formats/_json.py
+++ b/tablib/formats/_json.py
@@ -3,6 +3,7 @@
""" Tablib - JSON Support
"""
import decimal
+from uuid import UUID
import tablib
@@ -15,24 +16,23 @@ 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):