示例#1
0
def flatten_and_unicode(data):
    result = dict()
    for subinfo in data:
        for (key, value) in subinfo.items():
            if isinstance(value, bytes):
                try:
                    unicode_value = UnicodeDammit(value).unicode_markup.strip()
                except Exception as e:
                    continue
                if unicode_value != '':
                    result[key] = unicode_value
            elif isinstance(value, list):
                unicode_value = []
                if (all(map(lambda subval: isinstance(value, bytes), value))):
                    for subval in value:
                        try:
                            unicode_subval = UnicodeDammit(subval).unicode_markup.strip()
                            if unicode_subval != '':
                                unicode_value.append(unicode_subval)
                        except Exception as e:
                            pass

                if len(unicode_value) > 0:
                    result[key] = unicode_value
            # else:
            #     print(f"Subinfo with an unknown type {value}")
    return result