Skip to content

JSON does not preserve the order of OrderedDict #100272

Closed
@serhiy-storchaka

Description

@serhiy-storchaka

#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

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.12bugs and security fixestype-bugAn unexpected behavior, bug, or error

    Projects

    • Status

      Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions