Hi Joshua

Sounds to me that you want a solution soon, rather than in a future version
of Python. Perhaps this works for you.

def prune_nones(d):
    for k, v in list(d.items()):
        if v is None:
            del d[k]
        if type(v) is dict:
            prune_nones(v)

>>> d = dict(a=1, b=2, c=None)
>>> prune_nones(d)
{'a': 1, 'b': 2}

>>> d = dict(a=1, b=2, c=None, d=dict(e=None, f=3))
>>> prune_nones(d)
{'a': 1, 'b': 2, 'd': {'f': 3}}


I hope this helps. By the way, the list(d.items()) in the loop is to avoid

RuntimeError: dictionary changed size during iteration

-- 
Jonathan
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to