Fix non string object keys

Python allows to have dictionaries with types other than strings, on the contrary to JSON. Thus, if using native Python objects, like `{42: True}`, you might end up in a situation where jsonschema tries to run a regular expression on 42, which obviously fails.

I'm not certain that the behavior of that patch is a good one, a good idea would probably be to simply validate Python objects as JSON-serializable instead of doing that, but at least it demonstrates the issue (and my night is too short to put more effort into this patch :) ).