File structure of wallet.dat
There are various ways to extract and dump the private/public keys from a wallet.dat depending on how it became corrupted.
First, try to run -salvagewallet command to repair it.
If you have a tool to dump the mongo db, yes its possible to find possible keypairs (pub/priv) and dump them out using python tools. Of course you would need the passphrase for this.
What system are you using, mac, Linux, Windows, and what version was the wallet created with?