<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_completions(self):
 """Load completions from the completion index. Updates the following attributes: * commands * subcommands * global_opts * args_opts """

        try:
            index_str = self.load_index(utils.AWSCLI_VERSION)
        except IndexLoadError:
            return
        index_str = self.load_index(utils.AWSCLI_VERSION)
        index_data = json.loads(index_str)
        index_root = index_data['aws']
        # ec2, s3, elb...
        self.commands = index_root['commands']
        # --profile, --region, --output...
        self.global_opts = index_root['arguments']
        for command in self.commands:
            # ec2: start-instances, stop-instances, terminate-instances...
            subcommands_current = index_root['children'] \
                .get(command)['commands']
            self.subcommands.extend(subcommands_current)
            for subcommand_current in subcommands_current:
                # start-instances: --instance-ids, --dry-run...
                args_opts_current = index_root['children'] \
                    .get(command)['children'] \
                    .get(subcommand_current)['arguments']
                self.args_opts.update(args_opts_current)