|
import json |
|
import argparse |
|
import glob |
|
|
|
def remove_items_with_keywords(json_file_path): |
|
keywords = ["pretrained_model_name_or_path", "dir", "save_model_as", "save_state", "resume", "output_name", "model_list", "sample_"] |
|
|
|
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) |
|
|