From 732dec17afe7c5942e9ed2f644549134db93fbb3 Mon Sep 17 00:00:00 2001 From: tligui_y Date: Mon, 21 Jul 2025 14:45:37 +0200 Subject: [PATCH] Add json_to_tree.py --- json_to_tree.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 json_to_tree.py diff --git a/json_to_tree.py b/json_to_tree.py new file mode 100644 index 0000000..5b73eb1 --- /dev/null +++ b/json_to_tree.py @@ -0,0 +1,43 @@ +from io import StringIO +from rich.console import Console +from rich.tree import Tree +import json +import sys +import os + +def build_tree(data, tree): + if isinstance(data, dict): + for key, value in data.items(): + if isinstance(value, (dict, list)): + branch = tree.add(f"{key}") + build_tree(value, branch) + else: + tree.add(f"{key}: {value}") + elif isinstance(data, list): + for value in data: + if isinstance(value, (dict, list)): + branch = tree.add("-") + build_tree(value, branch) + else: + tree.add(f"{value}") + +def main(): + file_path = sys.argv[1] + with open(file_path, 'r') as f: + data = json.load(f) + + os.makedirs("ci-reports/markdown", exist_ok=True) + + buffer = StringIO() + console = Console(file=buffer, record=True, force_terminal=True, color_system="truecolor") + + root = Tree(f"📁 {file_path}") + build_tree(data, root) + + console.print(root) + + with open("ci-reports/markdown/json-tree-view.txt", "w") as f: + f.write(console.export_text(clear=False)) + +if __name__ == "__main__": + main()