Coverage for src/extratools_core/jsontools.py: 100%
13 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-07 06:52 -0700
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-07 06:52 -0700
1from typing import Any
4def flatten(data: Any) -> Any:
5 def flatten_rec(data: Any, path: str) -> None:
6 if isinstance(data, dict):
7 for k, v in data.items():
8 flatten_rec(v, path + (f".{k}" if path else k))
9 elif isinstance(data, list):
10 for i, v in enumerate(data):
11 flatten_rec(v, path + f"[{i}]")
12 else:
13 flatten_dict[path or "."] = data
15 flatten_dict: dict[str, Any] = {}
16 flatten_rec(data, "")
17 return flatten_dict