Looks like a corrupt wallet.dat? If you have another backup of the wallet, try that file. You could also try and start the client with a new wallet.dat (move the old wallet and let it generate a new one), let it load, stop it and try the old wallet.dat again. Or, start up with a new wallet and try the 'import wallet' function from the console.
No experience with py here, unfortunately, but I don't think that would work with an encrypted wallet anyway.