I have a dict and would like to remove all the keys for which there are empty value strings.
metadata = {u\'Composite:PreviewImage\': u\'(Binary data 101973
If you have a nested dictionary, and you want this to work even for empty sub-elements, you can use a recursive variant of BrenBarn's suggestion:
def scrub_dict(d): if type(d) is dict: return dict((k, scrub_dict(v)) for k, v in d.iteritems() if v and scrub_dict(v)) else: return d