|
import json
|
|
import argparse
|
|
import glob
|
|
|
|
|
|
def remove_items_with_keywords(json_file_path):
|
|
keywords = [
|
|
"caption_metadata_filename",
|
|
"dir",
|
|
"image_folder",
|
|
"latent_metadata_filename",
|
|
"logging_dir",
|
|
"model_list",
|
|
"output_dir",
|
|
"output_name",
|
|
"pretrained_model_name_or_path",
|
|
"resume",
|
|
"save_model_as",
|
|
"save_state",
|
|
"sample_",
|
|
"train_dir",
|
|
"wandb_api_key",
|
|
]
|
|
|
|
with open(json_file_path) as file:
|
|
data = json.load(file)
|
|
|
|
for key in list(data.keys()):
|
|
for keyword in keywords:
|
|
if keyword in key:
|
|
del data[key]
|
|
break
|
|
|
|
sorted_data = {k: data[k] for k in sorted(data)}
|
|
|
|
with open(json_file_path, "w") as file:
|
|
json.dump(sorted_data, file, indent=4)
|
|
|
|
print(
|
|
"Items with keywords have been removed from the JSON file and the list has been sorted alphabetically:",
|
|
json_file_path,
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser(
|
|
description="Remove items from JSON files based on keywords in the keys"
|
|
)
|
|
parser.add_argument(
|
|
"json_files", type=str, nargs="+", help="Path(s) to the JSON file(s)"
|
|
)
|
|
args = parser.parse_args()
|
|
|
|
json_files = args.json_files
|
|
for file_pattern in json_files:
|
|
for json_file_path in glob.glob(file_pattern):
|
|
remove_items_with_keywords(json_file_path)
|
|
|