On one hand, you don't want to give a weakness that will make you lose out on the job. On the other hand, you're still expected to deliver an answer.
Drexler says the best way to attack this question is to give a natural weakness that everyone deals with and to not dwell on it. Then immediately follow up with whatever actions you've taken to counter your weakness. And finally, explain the results that you've achieved by fixing it. He gives this example:
Weakness: When I make a mistake, I get hung up over it and will dwell on it for a few hours.
Action: I realized that this was an issue that was interfering with my work so now I give myself 15 minutes to dwell on it before moving on.
Result: Now instead of sulking for most of the day, I remain productive even when upset.
The No. 1 response to avoid, says Drexler, is using a cliche like "I'm a perfectionist." But if you're so inclined, give it a new spin, he says. You can say, "I feel like I need too much information before I make a decision, which slows me down. But now, I'm working on being able to make a decision with incomplete information."