Skip to content

Instantly share code, notes, and snippets.

@devsetgo
Forked from nlohmann/remove_empty_elements.py
Created September 30, 2020 15:41
Show Gist options
  • Save devsetgo/82ac265868fbb71cbbfdaf04944fb612 to your computer and use it in GitHub Desktop.
Save devsetgo/82ac265868fbb71cbbfdaf04944fb612 to your computer and use it in GitHub Desktop.
Remove empty arrays, objects or null elements from a JSON value
def remove_empty_elements(d):
"""recursively remove empty lists, empty dicts, or None elements from a dictionary"""
def empty(x):
return x is None or x == {} or x == []
if not isinstance(d, (dict, list)):
return d
elif isinstance(d, list):
return [v for v in (remove_empty_elements(v) for v in d) if not empty(v)]
else:
return {k: v for k, v in ((k, remove_empty_elements(v)) for k, v in d.items()) if not empty(v)}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment