When you try to serialize a NaN, inf or -inf with json.dumps(..., allow_nan=False), the error messages are inconsistent, depending on whether you use the indent argument or not.
>>>json.dumps(float('nan'), allow_nan=False)
ValueError: OutofrangefloatvaluesarenotJSONcompliant>>>json.dumps(float('nan'), allow_nan=False, indent=4)
ValueError: OutofrangefloatvaluesarenotJSONcompliant: nan
That is because if you don't use indent, the encoding is done in C code here,
but if you use indent, the encoding is done in pure Python code here, and the error messages are different between the two.
Your environment
CPython versions tested on: 3.11.0
Operating system and architecture: MacOS 12.6, Apple Silicon
fnesveda commentedDec 1, 2022
•
edited by bedevere-bot
Bug report
When you try to serialize a
NaN
,inf
or-inf
withjson.dumps(..., allow_nan=False)
, the error messages are inconsistent, depending on whether you use theindent
argument or not.That is because if you don't use
indent
, the encoding is done in C code here,but if you use
indent
, the encoding is done in pure Python code here, and the error messages are different between the two.Your environment
Linked PRs
json.dumps()
error messages #99926The text was updated successfully, but these errors were encountered: