dictutils.ops.pruneΒΆ

dictutils.ops.prune(d, *, remove_empty=True, predicate=None)[source]ΒΆ

Remove empty values or values matching predicate, recursively.

Parameters:
  • d (Any) – Object to prune

  • remove_empty (bool) – Whether to remove None, {}, [] values

  • predicate (Optional[Callable[[Any, Any], bool]]) – Optional function to determine what to remove

Return type:

Any

Returns:

Pruned object

Example

>>> import json
>>> data = {
...     "user": {
...         "name": "Alice",
...         "email": None,
...         "tags": [],
...         "profile": {"bio": "", "settings": {}}
...     }
... }
>>> result = prune(data)
>>> print(json.dumps(result, indent=4))
{
    "user": {
        "name": "Alice"
    }
}