Как сохранять в 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. Лучше не делать переменные, имена которых совпадают с названиями встроенных классов и т.д