summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorRaymond Hettinger <rhettinger@users.noreply.github.com>2019-08-22 22:14:42 (GMT)
committerGitHub <noreply@github.com>2019-08-22 22:14:42 (GMT)
commit657008ea0336ff4f275ed3f0c2b6dd2e52de2bba (patch)
tree73f2f84cc10599c469983ecdfce5f2265d00e5b2 /Doc
parent4be11c009abe88175fa164b45e4838e7267dfa97 (diff)
downloadcpython-657008ea0336ff4f275ed3f0c2b6dd2e52de2bba.zip
cpython-657008ea0336ff4f275ed3f0c2b6dd2e52de2bba.tar.gz
cpython-657008ea0336ff4f275ed3f0c2b6dd2e52de2bba.tar.bz2
bpo-30550: Clarify JSON ordering guarantees (GH-15397)
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/json.rst12
1 files changed, 12 insertions, 0 deletions
diff --git a/Doc/library/json.rst b/Doc/library/json.rst
index b476c37..56c16f5 100644
--- a/Doc/library/json.rst
+++ b/Doc/library/json.rst
@@ -120,6 +120,18 @@ See :ref:`json-commandline` for detailed documentation.
value) is also a subset of YAML 1.0 and 1.1. This module can thus also be
used as a YAML serializer.
+.. note::
+
+ This module's encoders and decoders preserve input and output order by
+ default. Order is only lost if the underlying containers are unordered.
+
+ Prior to Python 3.7, :class:`dict` was not guaranteed to be ordered, so
+ inputs and outputs were typically scrambled unless
+ :class:`collections.OrderedDict` was specifically requested. Starting
+ with Python 3.7, the regular :class:`dict` became order preserving, so
+ it is no longer necessary specify :class:`collections.OrderedDict` for
+ JSON generation and parsing.
+
Basic Usage
-----------