diff --git a/Doc/library/json.rst b/Doc/library/json.rst index 71020fd3cba..400e2d289bc 100644 --- a/Doc/library/json.rst +++ b/Doc/library/json.rst @@ -103,7 +103,7 @@ Using json.tool from the shell to validate and pretty-print:: "json": "obj" } $ echo '{1.2:3.4}' | python -mjson.tool - Expecting property name enclosed in double quotes: line 1 column 1 (char 1) + Expecting property name enclosed in double quotes: line 1 column 2 (char 1) .. highlight:: python diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py index d6a45d3b425..0be85da022b 100644 --- a/Lib/json/__init__.py +++ b/Lib/json/__init__.py @@ -95,7 +95,7 @@ Using json.tool from the shell to validate and pretty-print:: "json": "obj" } $ echo '{ 1.2:3.4}' | python -m json.tool - Expecting property name enclosed in double quotes: line 1 column 2 (char 2) + Expecting property name enclosed in double quotes: line 1 column 3 (char 2) """ __version__ = '2.0.9' __all__ = [ diff --git a/Lib/json/decoder.py b/Lib/json/decoder.py index 7e2c68c8c46..dc8916c9264 100644 --- a/Lib/json/decoder.py +++ b/Lib/json/decoder.py @@ -27,7 +27,7 @@ NaN, PosInf, NegInf = _floatconstants() def linecol(doc, pos): lineno = doc.count('\n', 0, pos) + 1 if lineno == 1: - colno = pos + colno = pos + 1 else: colno = pos - doc.rindex('\n', 0, pos) return lineno, colno diff --git a/Lib/json/tool.py b/Lib/json/tool.py index fe47c52d416..fc5d74923df 100644 --- a/Lib/json/tool.py +++ b/Lib/json/tool.py @@ -7,7 +7,7 @@ Usage:: "json": "obj" } $ echo '{ 1.2:3.4}' | python -m json.tool - Expecting property name enclosed in double quotes: line 1 column 2 (char 2) + Expecting property name enclosed in double quotes: line 1 column 3 (char 2) """ import sys diff --git a/Misc/NEWS b/Misc/NEWS index 2c88b61201d..0b619fb40ee 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -208,6 +208,9 @@ Core and Builtins Library ------- +- Issue #17225: JSON decoder now counts columns in the first line starting + with 1, as in other lines. + - Issue #7842: backported fix for py_compile.compile() syntax error handling. - Issue #13153: Tkinter functions now raise TclError instead of ValueError when