There's a utility function in BaseHandler to handle this (and form encoded bodies too).  See https://github.com/Metaswitch/crest/blob/dev/src/metaswitch/crest/api/_base.py#L114.