Commit 79e91dff by Omer Katz

The encoder now returns tuples instead of lists.

Tuples take a little less memory which is significant when serializing a lot of objects.
parent ffc6aa3a
...@@ -45,7 +45,7 @@ class JSONEncoder(json.JSONEncoder): ...@@ -45,7 +45,7 @@ class JSONEncoder(json.JSONEncoder):
# Serializers will coerce decimals to strings by default. # Serializers will coerce decimals to strings by default.
return float(obj) return float(obj)
elif isinstance(obj, QuerySet): elif isinstance(obj, QuerySet):
return list(obj) return tuple(obj)
elif hasattr(obj, 'tolist'): elif hasattr(obj, 'tolist'):
# Numpy arrays and array scalars. # Numpy arrays and array scalars.
return obj.tolist() return obj.tolist()
...@@ -55,7 +55,7 @@ class JSONEncoder(json.JSONEncoder): ...@@ -55,7 +55,7 @@ class JSONEncoder(json.JSONEncoder):
except: except:
pass pass
elif hasattr(obj, '__iter__'): elif hasattr(obj, '__iter__'):
return [item for item in obj] return tuple(item for item in obj)
return super(JSONEncoder, self).default(obj) return super(JSONEncoder, self).default(obj)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment