Note: This does not work in any recent version of Python.
Unfortunately, I believe you have to do this by monkey-patching (which, to my opinion, indicates a design defect in the standard library
json package). E.g., this code:
import json from json import encoder encoder.FLOAT_REPR = lambda o: format(o, '.2f') print(json.dumps(23.67)) print(json.dumps([23.67, 23.97, 23.87]))
23.67 [23.67, 23.97, 23.87]
as you desire. Obviously, there should be an architected way to override
FLOAT_REPR so that EVERY representation of a float is under your control if you wish it to be; but unfortunately that's not how the
json package was designed:-(.