Message 191586 - Python tracker (original) (raw)

The proposal to change json from using repr() to str() has unknown dangers.

I don't want the str() of IntEnum to return just the decimal string (e.g. "42"), since that breaks half of the usefulness of using the enum in the first place -- people will write print(x) and be confused.

Unfortunately the json module doesn't have a way to define in the object how to customize its serialization -- this is always done in the json encoder/decoder. Maybe we can add something to the JSON encoder and decoder class that looks for a special method, e.g. json_encode etc.? (OR maybe this would be a use case for PEP 443?)