<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_dict_values(self, db_key: str, dict_keys: List[str], hierarchical: bool = False) -> List: """Load values from a dictionary with the specified dict_keys. Args: db_key (str):
 Key where the dictionary is stored dict_keys (List[str]):
 Keys within the dictionary to load. hierarchical (bool):
 If True, expect the dictionary to have been stored hierarchically. If False, expect the dictionary to have been stored flat. Returns: object: The value stored at dict_key in the dictionary stored at key """

        result = []
        if not hierarchical:
            _values = self._db.hmget(db_key, *dict_keys)
            result = [ast.literal_eval(_value) for _value in _values]
        else:
            # Get all keys in the set of keys for this dict 'db_key'
            db_keys = self._db.keys(pattern=db_key + '*')
            for _db_key in db_keys:
                # Check if one of the dict_keys is an entire sub-dict entry
                for name in _db_key.split(':')[1:]:
                    if name in dict_keys:
                        _values = self._load_values(_db_key)
                        result.append(_values)

                # Look in the sub-dict for any of the dict_keys
                _values = self._db.hmget(_db_key, *dict_keys)
                for i, value in enumerate(_values):
                    try:
                        _values[i] = ast.literal_eval(value)
                    except SyntaxError:
                        pass
                    except ValueError:
                        pass
                result += [value for value in _values if value is not None]
        return result