<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_choices(self):
 """ Returns a list of dictionary objects, one dictionary object per choice. Each object has two keys defined: 'value', 'label'. The 'label' entry is what should be displayed on the UI, the 'value' entry is what is written into GPJobSpec. """


        if 'choiceInfo' not in self.dto[self.name]:
            raise GPException('not a choice parameter')
        if self.get_choice_status()[1] == "NOT_INITIALIZED":
            print(self.get_choice_status())
            print("choice status not initialized")

            request = urllib.request.Request(self.get_choice_href())
            if self.task.server_data.authorization_header() is not None:
                request.add_header('Authorization', self.task.server_data.authorization_header())
            request.add_header('User-Agent', 'GenePatternRest')
            response = urllib.request.urlopen(request)
            self.dto[self.name]['choiceInfo'] = json.loads(response.read().decode('utf-8'))
        return self.dto[self.name]['choiceInfo']['choices']