dictutils.ops.coalesce_pathsΒΆ

dictutils.ops.coalesce_paths(d, candidates, *, set_to=None, default=None)[source]ΒΆ

Return first existing value from candidate paths, optionally setting result to a path.

Parameters:
Return type:

Any

Returns:

First found value or default

Example

>>> import json
>>> data = {"user": {"email": "alice@example.com"}}
>>> result = coalesce_paths(data, ["user.username", "user.email", "user.id"],
...                        default="anonymous")
>>> print(json.dumps(result, indent=4))
"alice@example.com"
>>> coalesce_paths(data, ["user.username", "user.id"],
...                set_to="user.display_name", default="anonymous")
>>> print(json.dumps(data, indent=4))
{
    "user": {
        "email": "alice@example.com",
        "display_name": "anonymous"
    }
}