represent util.NONE as 'null' in JSON output

was '"None"' before
This commit is contained in:
Mike Fährmann
2023-11-02 15:23:28 +01:00
parent 56cd9d408d
commit 72b18d701f
3 changed files with 11 additions and 3 deletions

View File

@@ -206,7 +206,8 @@ class MetadataPP(PostProcessor):
sort_keys=options.get("sort", False), sort_keys=options.get("sort", False),
separators=options.get("separators"), separators=options.get("separators"),
indent=options.get("indent", indent), indent=options.get("indent", indent),
check_circular=False, default=str, check_circular=False,
default=util.json_default,
) )

View File

@@ -223,8 +223,14 @@ def datetime_to_timestamp_string(dt):
return "" return ""
def json_default(obj):
if isinstance(obj, CustomNone):
return None
return str(obj)
json_loads = json._default_decoder.decode json_loads = json._default_decoder.decode
json_dumps = json.JSONEncoder(default=str).encode json_dumps = json.JSONEncoder(default=json_default).encode
def dump_json(obj, fp=sys.stdout, ensure_ascii=True, indent=4): def dump_json(obj, fp=sys.stdout, ensure_ascii=True, indent=4):
@@ -233,7 +239,7 @@ def dump_json(obj, fp=sys.stdout, ensure_ascii=True, indent=4):
obj, fp, obj, fp,
ensure_ascii=ensure_ascii, ensure_ascii=ensure_ascii,
indent=indent, indent=indent,
default=str, default=json_default,
sort_keys=True, sort_keys=True,
) )
fp.write("\n") fp.write("\n")

View File

@@ -750,6 +750,7 @@ def hash(value):
self.assertIs(obj(), obj) self.assertIs(obj(), obj)
self.assertIs(obj(1, "a"), obj) self.assertIs(obj(1, "a"), obj)
self.assertIs(obj(foo="bar"), obj) self.assertIs(obj(foo="bar"), obj)
self.assertEqual(util.json_dumps(obj), "null")
i = 0 i = 0
for _ in obj: for _ in obj: