Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
802d6690
Commit
802d6690
authored
Jun 29, 2012
by
Antoine Pitrou
Browse files
Options
Browse Files
Download
Plain Diff
Issue #5067: improve some json error messages.
Patch by Serhiy Storchaka.
parents
3a3dc17f
2d24e94b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
14 additions
and
12 deletions
+14
-12
Doc/library/json.rst
Doc/library/json.rst
+1
-1
Lib/json/__init__.py
Lib/json/__init__.py
+1
-1
Lib/json/decoder.py
Lib/json/decoder.py
+7
-5
Lib/json/tool.py
Lib/json/tool.py
+1
-1
Modules/_json.c
Modules/_json.c
+4
-4
No files found.
Doc/library/json.rst
View file @
802d6690
...
...
@@ -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
...
...
Lib/json/__init__.py
View file @
802d6690
...
...
@@ -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__
=
[
...
...
Lib/json/decoder.py
View file @
802d6690
...
...
@@ -172,7 +172,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
)
...
...
@@ -182,7 +183,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
:
...
...
@@ -210,12 +211,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
...
...
@@ -249,7 +251,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
...
...
Lib/json/tool.py
View file @
802d6690
...
...
@@ -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
...
...
Modules/_json.c
View file @
802d6690
...
...
@@ -646,7 +646,7 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss
/* read key */
if
(
PyUnicode_READ
(
kind
,
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
);
...
...
@@ -667,7 +667,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
(
PyUnicode_READ
(
kind
,
str
,
idx
)))
idx
++
;
if
(
idx
>
end_idx
||
PyUnicode_READ
(
kind
,
str
,
idx
)
!=
':'
)
{
raise_errmsg
(
"Expecting
:
delimiter"
,
pystr
,
idx
);
raise_errmsg
(
"Expecting
':'
delimiter"
,
pystr
,
idx
);
goto
bail
;
}
idx
++
;
...
...
@@ -707,7 +707,7 @@ _parse_object_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ss
break
;
}
else
if
(
PyUnicode_READ
(
kind
,
str
,
idx
)
!=
','
)
{
raise_errmsg
(
"Expecting
,
delimiter"
,
pystr
,
idx
);
raise_errmsg
(
"Expecting
','
delimiter"
,
pystr
,
idx
);
goto
bail
;
}
idx
++
;
...
...
@@ -797,7 +797,7 @@ _parse_array_unicode(PyScannerObject *s, PyObject *pystr, Py_ssize_t idx, Py_ssi
break
;
}
else
if
(
PyUnicode_READ
(
kind
,
str
,
idx
)
!=
','
)
{
raise_errmsg
(
"Expecting
,
delimiter"
,
pystr
,
idx
);
raise_errmsg
(
"Expecting
','
delimiter"
,
pystr
,
idx
);
goto
bail
;
}
idx
++
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment