import zipfile import json import argparse parser = argparse.ArgumentParser() parser.add_argument("-f", "--filepath", help="Specify a filepath to an agent's zip file, .zip extension required.", type=str, required=True) parser.add_argument("-s", "--savefile", help="Specify a name and location for the saved configuration file. Will be saved in .json format.", default="config") args = parser.parse_args() filepath = args.filepath savefile = args.savefile archive = zipfile.ZipFile(filepath, "r") file = archive.open("data") json_file = json.loads(file.read().decode("utf-8")) # Only want to remove serialized objects from dictionary val_to_remove = ":serialized:" for key in json_file.keys(): # So if each value is a type dict, then I want to iterate through it and remove the serialized key if type(json_file[key]) is dict: if val_to_remove in json_file[key].keys(): json_file[key].pop(val_to_remove) with open(f"{savefile}.json", "w") as outfile: outfile.write(json.dumps(json_file, indent=2)) file.close()