From dc3eaa80d493cd23a5589f16a2ead559b0fd376c Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sun, 11 Jan 2015 16:41:01 +0100 Subject: Issue #23206: Make ``json.dumps(..., ensure_ascii=False)`` as fast as the default case of ``ensure_ascii=True``. Patch by Naoki Inada. --- Lib/json/encoder.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'Lib/json/encoder.py') diff --git a/Lib/json/encoder.py b/Lib/json/encoder.py index 05138383bcc..26e9eb2bc69 100644 --- a/Lib/json/encoder.py +++ b/Lib/json/encoder.py @@ -6,6 +6,10 @@ try: from _json import encode_basestring_ascii as c_encode_basestring_ascii except ImportError: c_encode_basestring_ascii = None +try: + from _json import encode_basestring as c_encode_basestring +except ImportError: + c_encode_basestring = None try: from _json import make_encoder as c_make_encoder except ImportError: @@ -30,7 +34,7 @@ for i in range(0x20): INFINITY = float('inf') FLOAT_REPR = repr -def encode_basestring(s): +def py_encode_basestring(s): """Return a JSON representation of a Python string """ @@ -39,6 +43,9 @@ def encode_basestring(s): return '"' + ESCAPE.sub(replace, s) + '"' +encode_basestring = (c_encode_basestring or py_encode_basestring) + + def py_encode_basestring_ascii(s): """Return an ASCII-only JSON representation of a Python string -- cgit v1.2.3