<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_spec_value(self, form, uid, key, default=''):
 """Returns the value assigned to the passed in key for the analysis service uid from the passed in form. If check_floatable is true, will return the passed in default if the obtained value is not floatable :param form: form being submitted :param uid: uid of the Analysis Service the specification relates :param key: id of the specs param to get (e.g. 'min') :param check_floatable: check if the value is floatable :param default: fallback value that will be returned by default :type default: str, None """

        if not form or not uid:
            return default
        values = form.get(key, None)
        if not values or len(values) == 0:
            return default
        value = values[0].get(uid, default)
        return api.is_floatable(value) and value or default