<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_obs_function(self):
 """ Returns the observation function as nested dict in the case of table- type parameter and a nested structure in case of decision diagram parameter Example -------- [{'Var': 'obs_sensor', 'Parent': ['action_rover', 'rover_1', 'rock_1'], 'Type': 'TBL', 'Parameter': [{'Instance': ['amw', '*', '*', '-'], 'ProbTable': ['1.0', '0.0']}, ] }] """

        obs_function = []
        for variable in self.network.findall('ObsFunction'):
            for var in variable.findall('CondProb'):
                cond_prob = defaultdict(list)
                cond_prob['Var'] = var.find('Var').text
                cond_prob['Parent'] = var.find('Parent').text.split()
                if not var.find('Parameter').get('type'):
                    cond_prob['Type'] = 'TBL'
                else:
                    cond_prob['Type'] = var.find('Parameter').get('type')
                cond_prob['Parameter'] = self.get_parameter(var)
                obs_function.append(cond_prob)

        return obs_function