def parse_unit(prop, dictionary, dt=None):
    '''Do a fuzzy match for `prop` in the dictionary, taking into account unit suffix.'''
    try:
        dt = timezone.parse_datetime(dictionary.get('date_time'))
    except TypeError:
        dt = None
    matches = [k for k in dictionary.keys() if prop in k]
    try:
        value = dictionary[matches[0]]
        unit = re.search(r' \(([^)]+)\)', matches[0])
    except IndexError:
        return None
    if ';' in value:
        values = [val for val in value.split(';') if val != '']
        if unit:
            return [Observation(v, unit.group(1), dt) for v in values]
        else:
            return values
    if not value or not unit:
        return value or None
    return Observation(value, unit.group(1), dt)