Recursively inspect a dictionary and remove all empty values, including
        empty strings, lists, and dictionaries.

def scrub_dict(d):
    """ Recursively inspect a dictionary and remove all empty values, including
        empty strings, lists, and dictionaries.
    """
    if type(d) is dict:
        return dict(
            (k, scrub_dict(v)) for k, v in d.iteritems() if v and scrub_dict(v)
        )
    elif type(d) is list:
        return [
            scrub_dict(v) for v in d if v and scrub_dict(v)
        ]
    else:
        return d