Tom Christie added the comment:
I believe the status of this should be reassessed and that python should
default to escaping '\u2028' and '\u2029'. *Strictly* speaking this isn't a bug
and is per the JSON spec.
*However* this *is* a bug in the JSON spec - which *should* be a strict subset
of
Serhiy Storchaka added the comment:
There is explicit note in the documentation about incompatibility with
JavaScript.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18290
___
Tom Christie added the comment:
There is explicit note in the documentation about incompatibility with
JavaScript.
That may be, but we're still unnecessarily making for a poorer user experience.
There's no good reason why we shouldn't just treat \u2028 and \u2029 as control
characters -
Changes by Serhiy Storchaka storch...@gmail.com:
--
stage: - committed/rejected
status: pending - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18290
___
Serhiy Storchaka added the comment:
Embedding JSON inside script tag doesn't differ from embedding any string in
some format (i.e. JSON in Python string, Python sources in HTML, or XML in a
shell script). We just escape characters which have special meaning.
I propose close this issue because
Serhiy Storchaka added the comment:
I think this is not JSON issue. If you need escaping of some domain-specific
characters, do it youself. I.e.
json.dump(...).replace('\u2028', r'\u2028').replace('\u2029',
r'\u2029').replace('/', r'\u003c\u002f')
--
resolution: - invalid
Antoine Pitrou added the comment:
On the one hand, supporting JSONP is a valid request for the json module. On
the other hand, according to Wikipedia, There have been some criticisms raised
about JSONP. Cross-origin resource sharing (CORS) is a more recent method of
getting data from a server
Changes by Serhiy Storchaka storch...@gmail.com:
--
nosy: +ezio.melotti, pitrou, rhettinger, serhiy.storchaka
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue18290
___
Antti Haapala added the comment:
My mistake in writing, json ofc does specify that control characters be
escaped. Then, it needs to be pointed out that JSON module DOES not currently
escape \u007f-\u009f as it maybe strictly should
unicodedata.category('\u007f')
'Cc'
json.dumps({'a':