Вообще лучше чтобы каждый класс отвечал за что-то одно (Single responsibility principle из SOLID).
Само сохранение файлов лучше всегда делать с помощью контекстного менеджера (через ключевое слово with), так точно не ошибёшься и файл всегда будет закрыт после манипуляций с ним.
Исходя из вышесказанного лучше создать отдельный класс (либо функцию), который будет отвечать за сохранение и обращаться к нему для сохранения данных. (Это тот класс локального хранения, о котором пишет в замечаниях наставник).
Например, что-то такое:
class FileSaver:
@staticmethod
def save_to_file(data, filename, mode):
with open(filename, mode=mode, encoding='utf8') as f:
f.write(json.dumps(data, ensure_ascii=False, indent=2))
А в классах работы с HH и SuperJob уже использовать функционал FileSaver для сохранения.
def add_file(self):
file_saver = FileSaver()
for page in range(0, 20):
js_obj1 = json.loads(hh)
next_file_name1 = 'hh.json'
file_saver.save_to_file(js_obj1, next_file_name1, mode='a')
...
# и так далее
Вот тут file_saver.save_to_file(js_obj1, next_file_name1, mode='a') ещё зависит от реализации. не знаю предполагается сохранение каждый раз в новые файлы или все новые вакансии планируется с помощью append (mode='a') дописывать в один и тот же файл. Тут зависит от планируемой логики решения.
https://github.com/Tanymv/Coursework_4/blob/94708452c46600eb46a1ab28e4fca40f982940b6/src/main.py#L92-L94
https://github.com/Tanymv/Coursework_4/blob/94708452c46600eb46a1ab28e4fca40f982940b6/src/main.py#L144-L146
Вообще лучше чтобы каждый класс отвечал за что-то одно (Single responsibility principle из SOLID).
Само сохранение файлов лучше всегда делать с помощью контекстного менеджера (через ключевое слово with), так точно не ошибёшься и файл всегда будет закрыт после манипуляций с ним.
Исходя из вышесказанного лучше создать отдельный класс (либо функцию), который будет отвечать за сохранение и обращаться к нему для сохранения данных. (Это тот класс локального хранения, о котором пишет в замечаниях наставник).
Например, что-то такое:
А в классах работы с HH и SuperJob уже использовать функционал FileSaver для сохранения.
Вот тут
file_saver.save_to_file(js_obj1, next_file_name1, mode='a')
ещё зависит от реализации. не знаю предполагается сохранение каждый раз в новые файлы или все новые вакансии планируется с помощью append (mode='a') дописывать в один и тот же файл. Тут зависит от планируемой логики решения.