Как сохранять в json файл из словаря при каждой итерации цикла целиком, а не по частям?

Я написал небольшой парсер на python, вот он:

from bs4 import BeautifulSoup
import requests
import json

page = 1

with open("games_review.json", "a") as file:
    while True:
        res = requests.get(url=f"https://stopgame.ru/review/new/stopchoice/p{page}")
        soup = BeautifulSoup(res.content, "lxml")
        items = soup.find(class_="items").find_all(class_="article-summary")
        dict = {}

        if len(items):
            articles = soup.find_all(class_="caption")
            for article in articles:
                name = article.find_next().text
                link =  "https://stopgame.ru" + article.find_next().get("href")
                dict[name] = link

            page += 1
        else:
            break

        json.dump(dict, file, indent=4, ensure_ascii=False)

Но в json файл сохраняются разные вариации словаря dict, надо чтобы в файл json сохранялись такие же данные, только одним словарем. Как это сделать?

Если что я новичек, не вините за мой глупый вопрос!


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

Автор решения: Universall

Если я вас правильно понял, то проблему решит простой перенос dict = {} за приделы цикла while

dict = {}
while True:
    ...

P.S. Лучше не делать переменные, имена которых совпадают с названиями встроенных классов и т.д

→ Ссылка