The encoder now returns tuples instead of lists.

Tuples take a little less memory which is significant when serializing a lot of objects.
This commit is contained in:
Omer Katz 2014-10-02 16:44:20 +03:00
parent ffc6aa3abc
commit 79e91dff92

View File

@ -45,7 +45,7 @@ class JSONEncoder(json.JSONEncoder):
# Serializers will coerce decimals to strings by default.
return float(obj)
elif isinstance(obj, QuerySet):
return list(obj)
return tuple(obj)
elif hasattr(obj, 'tolist'):
# Numpy arrays and array scalars.
return obj.tolist()
@ -55,7 +55,7 @@ class JSONEncoder(json.JSONEncoder):
except:
pass
elif hasattr(obj, '__iter__'):
return [item for item in obj]
return tuple(item for item in obj)
return super(JSONEncoder, self).default(obj)