Skip to content

Instantly share code, notes, and snippets.

@kalharbi
Created May 6, 2014 05:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kalharbi/56dd376fe49c47d9b9be to your computer and use it in GitHub Desktop.
Save kalharbi/56dd376fe49c47d9b9be to your computer and use it in GitHub Desktop.
A custom JSON encoder that excludes null or empty pair values.
from json import JSONEncoder
class CustomJsonEncoder(JSONEncoder):
def remove_none(self, data):
if isinstance(data, dict):
return {k:self.remove_none(v) for k, v in data.items() if k and v }
elif isinstance(data, list):
return [self.remove_none(item) for item in data if item]
elif isinstance(data, set):
return {self.remove_none(item) for item in data if item}
else:
return data
def default(self, obj):
return self.remove_none(obj.__dict__)
@kalharbi
Copy link
Author

kalharbi commented May 6, 2014

Usage:

import json
json.dumps(object_to_serialize, sort_keys=True, indent=2, cls=CustomJsonEncoder))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment