From 2bcc4a774a8ca1556bd95c32f044d818f3547a40 Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Wed, 23 Jan 2013 15:25:48 -0600 Subject: [PATCH] Pass kwargs to json.loads Not all JSON is created equally. This commit addresses when users want to take control of the json decode process. --- requests/models.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/requests/models.py b/requests/models.py index 8885569a..131bcd5a 100644 --- a/requests/models.py +++ b/requests/models.py @@ -596,8 +596,11 @@ class Response(object): return content - def json(self): - """Returns the json-encoded content of a response, if any.""" + def json(self, **kwargs): + """Returns the json-encoded content of a response, if any. + + :param \*\*kwargs: Optional arguments that ``json.loads`` takes. + """ if not self.encoding and len(self.content) > 3: # No encoding set. JSON RFC 4627 section 3 states we should expect @@ -606,8 +609,8 @@ class Response(object): # a best guess). encoding = guess_json_utf(self.content) if encoding is not None: - return json.loads(self.content.decode(encoding)) - return json.loads(self.text or self.content) + return json.loads(self.content.decode(encoding), **kwargs) + return json.loads(self.text or self.content, **kwargs) @property def links(self):