From 0116eff1e756ae8f5b7a071195fb6ee48a49a146 Mon Sep 17 00:00:00 2001 From: Christophe Biocca Date: Sat, 17 Jun 2017 23:40:40 -0400 Subject: [PATCH] Fix issue for python 3.5 and lower where json.loads will not accept bytes. The underlying issue seems to have been introduced in d833182e789c9542d067e527729b1c3206bf4867. Fixes #358. --- twilio/base/page.py | 2 +- twilio/base/version.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/twilio/base/page.py b/twilio/base/page.py index 8115b42954..bb09493aed 100644 --- a/twilio/base/page.py +++ b/twilio/base/page.py @@ -58,7 +58,7 @@ def process_response(self, response): if response.status_code != 200: raise TwilioException('Unable to fetch page', response) - return json.loads(response.content) + return json.loads(response.content.decode('utf-8')) def load_page(self, payload): """ diff --git a/twilio/base/version.py b/twilio/base/version.py index d6240714d5..8ea2d0eca4 100644 --- a/twilio/base/version.py +++ b/twilio/base/version.py @@ -54,7 +54,7 @@ def exception(cls, method, uri, response, message): """ # noinspection PyBroadException try: - error_payload = json.loads(response.content) + error_payload = json.loads(response.content.decode('utf-8')) if 'message' in error_payload: message = '{}: {}'.format(message, error_payload['message']) code = error_payload.get('code', response.status_code) @@ -81,7 +81,7 @@ def fetch(self, method, uri, params=None, data=None, headers=None, auth=None, ti if response.status_code < 200 or response.status_code >= 300: raise self.exception(method, uri, response, 'Unable to fetch record') - return json.loads(response.content) + return json.loads(response.content.decode('utf-8')) def update(self, method, uri, params=None, data=None, headers=None, auth=None, timeout=None, allow_redirects=False): @@ -102,7 +102,7 @@ def update(self, method, uri, params=None, data=None, headers=None, auth=None, t if response.status_code < 200 or response.status_code >= 300: raise self.exception(method, uri, response, 'Unable to update record') - return json.loads(response.content) + return json.loads(response.content.decode('utf-8')) def delete(self, method, uri, params=None, data=None, headers=None, auth=None, timeout=None, allow_redirects=False): @@ -208,5 +208,5 @@ def create(self, method, uri, params=None, data=None, headers=None, auth=None, t if response.status_code < 200 or response.status_code >= 300: raise self.exception(method, uri, response, 'Unable to create record') - return json.loads(response.content) + return json.loads(response.content.decode('utf-8'))