If you follow backward the code in the SDK, you will see that the api_call function returns an object back with the type of APIResponse. If you look at the class APIResponse, you will see that the variable data is a dict. So load that variable with json.dumps() function which will return JSON in string, then use json.loads() to return JSON data. Also, the default return/response (look at special variable __repr__) is a two-string format. You could definitely grab that output in parentheses as that is already json.dumps() and preformatted.
return '%s(%s)' % (type(self).__name__, json.dumps(self.as_dict(), indent=4, sort_keys=True))
Hopefully, that helps!