import json import csv import config def get_converted_jobs(cfg: config.Config): with open(cfg.cognos11.reports_file, "r") as frh: reports = json.load(frh) report_id_to_name = dict([(r["id"], r["name"]) for r in reports]) with open(cfg.cognos11.jobs_file, "r") as frh: data = json.load(frh) result = [] for job in data: print(job["name"]) for step in job["details"]["steps"]: res = {} res["job_name"] = job["name"] res["to_address"] = ",".join( [opt["value"] for opt in step["options"] if opt["name"] == "toAddress"][ 0 ] ) res["params"] = {} if step["parameters"]: res["params"] = dict( [ (opt["name"], opt["value"][0]["display"]) for opt in step["parameters"] if len(opt["value"]) > 0 ] ) res["report_name"] = report_id_to_name[step["report_id"]] res["subject"] = [ opt["value"] for opt in step["options"] if opt["name"] == "subject" ][0] print(" " + res["report_name"]) # print(" " + ",\n ".join(res["to_address"])) # print(" ", res["params"]) result.append(res) if len(result) == 0: return with open( cfg.cognos11.config_dir + "/c11_jobs.csv", "w", encoding="latin-1", newline="" ) as fwh: csv_writer = csv.writer(fwh, delimiter=";") csv_writer.writerow(result[0].keys()) for row in result: csv_writer.writerow(row.values()) with open( cfg.cognos11.config_dir + "/converted.template.csv", "w", encoding="latin-1", newline="", ) as fwh: csv_writer = csv.writer(fwh, delimiter=";") csv_writer.writerow(["Report", "Empfaenger"]) for row in result: suffix = ( "_Summe" if len(row["params"].values()) == 0 else list(row["params"].values())[0] ) filename = f'{row["job_name"]}\\{row["report_name"]}_{suffix}.pdf' csv_writer.writerow([filename, row["to_address"].lower()])