download
raw
767 Bytes
from collections.abc import Mapping, Sequence
def normalize_json(obj):
"""Recursively normalize an object into JSON-compatible types."""
match obj:
case Mapping():
return {normalize_json(k): normalize_json(v) for k, v in obj.items()}
case bytes():
try:
return obj.decode("utf-8")
except UnicodeDecodeError:
raise ValueError(f"Unsupported value: {type(obj)}")
case str() | int() | float() | bool() | None:
return obj
case Sequence(): # str and bytes were already handled.
return [normalize_json(v) for v in obj]
case _: # Other types can't be serialized to JSON
raise TypeError(f"Unsupported type: {type(obj)}")

Xet Storage Details

Size:
767 Bytes
·
Xet hash:
fd6028fee1a273a843623cfae854f1cbd52a40022fa63b05503164f8c9278f82

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.