summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2012-06-28 23:58:26 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2012-06-28 23:58:26 (GMT)
commit2d24e94bbef97913b5fc434f991fa429f1533557 (patch)
tree0423c88ed968018d13bb60d7dc9687f99ab06811
parent24319ac40737a3c305bbadca4f89c607a54ec967 (diff)
downloadcpython-2d24e94bbef97913b5fc434f991fa429f1533557.zip
cpython-2d24e94bbef97913b5fc434f991fa429f1533557.tar.gz
cpython-2d24e94bbef97913b5fc434f991fa429f1533557.tar.bz2
Issue #5067: improve some json error messages.
Patch by Serhiy Storchaka.
-rw-r--r--Doc/library/json.rst2
-rw-r--r--Lib/json/__init__.py2
-rw-r--r--Lib/json/decoder.py12
-rw-r--r--Lib/json/tool.py2
-rw-r--r--Modules/_json.c8
5 files changed, 14 insertions, 12 deletions
diff --git a/Doc/library/json.rst b/Doc/library/json.rst
index 2bdc577..8686561 100644
--- a/Doc/library/json.rst
+++ b/Doc/library/json.rst
@@ -99,7 +99,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: line 1 column 1 (char 1)
+ Expecting property name enclosed in double quotes: line 1 column 1 (char 1)
.. highlight:: python3
diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py
index ba2bc1d..725b5cd 100644
--- a/Lib/json/__init__.py
+++ b/Lib/json/__init__.py
@@ -97,7 +97,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: line 1 column 2 (char 2)
+ Expecting property name enclosed in double quotes: line 1 column 2 (char 2)
"""
__version__ = '2.0.9'
__all__ = [
diff --git a/Lib/json/decoder.py b/Lib/json/decoder.py
index 3174e31..dc1155b 100644
--- a/Lib/json/decoder.py
+++ b/Lib/json/decoder.py
@@ -173,7 +173,8 @@ def JSONObject(s_and_end, strict, scan_once, object_hook, object_pairs_hook,
pairs = object_hook(pairs)
return pairs, end + 1
elif nextchar != '"':
- raise ValueError(errmsg("Expecting property name", s, end))
+ raise ValueError(errmsg(
+ "Expecting property name enclosed in double quotes", s, end))
end += 1
while True:
key, end = scanstring(s, end, strict)
@@ -183,7 +184,7 @@ def JSONObject(s_and_end, strict, scan_once, object_hook, object_pairs_hook,
if s[end:end + 1] != ':':
end = _w(s, end).end()
if s[end:end + 1] != ':':
- raise ValueError(errmsg("Expecting : delimiter", s, end))
+ raise ValueError(errmsg("Expecting ':' delimiter", s, end))
end += 1
try:
@@ -211,12 +212,13 @@ def JSONObject(s_and_end, strict, scan_once, object_hook, object_pairs_hook,
if nextchar == '}':
break
elif nextchar != ',':
- raise ValueError(errmsg("Expecting , delimiter", s, end - 1))
+ raise ValueError(errmsg("Expecting ',' delimiter", s, end - 1))
end = _w(s, end).end()
nextchar = s[end:end + 1]
end += 1
if nextchar != '"':
- raise ValueError(errmsg("Expecting property name", s, end - 1))
+ raise ValueError(errmsg(
+ "Expecting property name enclosed in double quotes", s, end - 1))
if object_pairs_hook is not None:
result = object_pairs_hook(pairs)
return result, end
@@ -250,7 +252,7 @@ def JSONArray(s_and_end, scan_once, _w=WHITESPACE.match, _ws=WHITESPACE_STR):
if nextchar == ']':
break
elif nextchar != ',':
- raise ValueError(errmsg("Expecting , delimiter", s, end))
+ raise ValueError(errmsg("Expecting ',' delimiter", s, end))
try:
if s[end] in _ws:
end += 1
diff --git a/Lib/json/tool.py b/Lib/json/tool.py
index 6d6558a..1adea31 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: line 1 column 2 (char 2)
+ Expecting property name enclosed in double quotes: line 1 column 2 (char 2)
"""
import sys
diff --git a/Modules/_json.c b/Modules/_json.c
index 0924873..2a71b9f 100644
--- a/Modules/_json.c
+++ b/Modules/_json.c
@@ -634,7 +634,7 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss
/* read key */
if (str[idx] != '"') {
- raise_errmsg("Expecting property name", pystr, idx);
+ raise_errmsg("Expecting property name enclosed in double quotes", pystr, idx);
goto bail;
}
key = scanstring_unicode(pystr, idx + 1, strict, &next_idx);
@@ -655,7 +655,7 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss
/* skip whitespace between key and : delimiter, read :, skip whitespace */
while (idx <= end_idx && IS_WHITESPACE(str[idx])) idx++;
if (idx > end_idx || str[idx] != ':') {
- raise_errmsg("Expecting : delimiter", pystr, idx);
+ raise_errmsg("Expecting ':' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -695,7 +695,7 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss
break;
}
else if (str[idx] != ',') {
- raise_errmsg("Expecting , delimiter", pystr, idx);
+ raise_errmsg("Expecting ',' delimiter", pystr, idx);
goto bail;
}
idx++;
@@ -777,7 +777,7 @@ _parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssi
break;
}
else if (str[idx] != ',') {
- raise_errmsg("Expecting , delimiter", pystr, idx);
+ raise_errmsg("Expecting ',' delimiter", pystr, idx);
goto bail;
}
idx++;