Запись файла в цикле while на python

Столкнулся с проблемой, в цикле while при определённых условиях, необходимо выводить информацию и записывать её в файл. С выводом информации всё хорошо, а вот файл создаётся только после выхода из цикла, что приводит к тому, что записывается только последняя информация, как сделать, чтоб запись была в каждом проходе цикла

while True:
    event = input('- ')
    if event.lower() in ('search', 's'):
        list_photo, value_compability = get_result(value_compability, token)
        pprint(list_photo)
        with open(f'Cache\\Топ-10 для пользователя {user_id}.json', 'w', encoding='utf-8') as file:
            json.dump(list_photo, file, ensure_ascii=False, indent=2)

Ответы (1 шт):

Автор решения: Эникейщик

Все не так! Файл создается при каждом проходе цикла. Просто он каждый раз затирается новыми данными и в конце остаются только самые последние. Возможные решения:

  1. Вынести открытие файлы за пределы цикла.

  2. Изменить режим открытия файла на "a", это будет дописывать строки в конец файла, а не переписывать уже имеющиеся.

→ Ссылка