Add json_to_tree.py
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user