I\'ve noticed some strange behavior on Python 3\'s implementation of json.dumps
, namely the key order changes every time I dump the same object from execution to ex
Python dictionaries and JSON objects are unordered. You can ask json.dumps()
to sort the keys in the output; this is meant to ease testing. Use the sort_keys
parameter to True
:
print(json.dumps(data, indent=2, sort_keys=True))
See Why is the order in Python dictionaries and sets arbitrary? as to why you see a different order each time.
You can set the PYTHONHASHSEED environment variable to an integer value to 'lock' the dictionary order; use this only to run tests and not in production, as the whole point of hash randomisation is to prevent an attacker from trivially DOS-ing your program.