<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def viewreaction(self, ctx, *, reactor : str):
 """Views a specific reaction"""

        data = self.config.get(ctx.message.server.id, {})
        keyword = data.get(reactor, {})

        if not keyword:
            await self.bot.responses.failure(message="Reaction '{}' was not found.".format(reactor))
            return

        response = data.get(reactor, {}).get("response", "")
        reacts = data.get(reactor, {}).get("reaction", [])

        for i, r in enumerate(reacts):
            if ":" in r:
                reacts[i] = "<:" + r + ">"

        reacts = " ".join(reacts) if reacts else "-"
        response = response if response else "-"

        string = "Here's what I say to '{reactor}': {response}\n"\
                 "I'll react to this message how I react to '{reactor}'.".format(reactor=reactor,response=response)

        await self.bot.responses.full(sections=[{"name": "Response", "value": response},
                                                {"name": "Reactions", "value": reacts, "inline": False}])