diff --git a/json_to_md.py b/json_to_md.py
index 844c99fd2..614ae8b63 100644
--- a/json_to_md.py
+++ b/json_to_md.py
@@ -23,6 +23,19 @@ def normalize_nodeid(nodeid):
return f"{file_part}#{func_part}"
return None
+def write_json_value(f, value, indent=0):
+ prefix = " " * indent
+ if isinstance(value, dict):
+ for k, v in value.items():
+ f.write(f"{prefix}{k}:\n")
+ write_json_value(f, v, indent + 1)
+ elif isinstance(value, list):
+ for i, item in enumerate(value):
+ f.write(f"{prefix}- item {i}:\n")
+ write_json_value(f, item, indent + 1)
+ else:
+ f.write(f"{prefix}{value}\n")
+
def load_allure_metadata(allure_test_cases_dir):
allure_data = {}
if not os.path.exists(allure_test_cases_dir):
@@ -134,14 +147,7 @@ def json_to_md_nested(json_path, md_path, allure_dir=None):
continue
f.write(f"\n📌 {field.capitalize()}
\n\n")
f.write("```\n")
- if isinstance(value, dict):
- for k, v in value.items():
- f.write(f"{k}: {v}\n")
- elif isinstance(value, list):
- for item in value:
- f.write(f"{item}\n")
- else:
- f.write(f"{value}\n")
+ write_json_value(f, value)
f.write("```\n")
f.write(" \n\n")
@@ -199,12 +205,7 @@ def json_to_md_nested(json_path, md_path, allure_dir=None):
for k, v in other_keys.items():
f.write(f"{k}:\n")
try:
- if isinstance(v, (dict, list)):
- f.write(json.dumps(v, indent=2, ensure_ascii=False) + "\n")
- elif isinstance(v, (str, int, float, bool)) or v is None:
- f.write(f" {v}\n")
- else:
- f.write(f" \n")
+ write_json_value(f, v, indent=1)
except Exception as e:
f.write(f" \n")
f.write("\n")