◐ Shell
clean mode source ↗

JSON does not preserve the order of OrderedDict

#95385 caused a regression in JSON serialization of OrderedDict when use the C implementation.

>>> import collections, json
>>> od = collections.OrderedDict(a=1, b=2)
>>> od.move_to_end('a')
>>> od
OrderedDict([('b', 2), ('a', 1)])
>>> json.dumps(od)
'{"a": 1, "b": 2}'

With the pure Python implementation, as well as in older Pythons, you get '{"b": 2, "a": 1}'.

Linked PRs