В файл JSON записывается только последний словарь
Хочу спарсить сайт. Но в файл JSON записываются не все 60 словарей ,а только последний последний
import json
from bs4 import BeautifulSoup
import requests
r = requests.get('')
html = BeautifulSoup(r.content,'html.parser'
news_dict = {}
for el in html.select('.news> p> a '):
news_dict = {}
el_name = el.text
el_href =el.get('href')
news_dict = {
'Приправа': el_name,
'ссылка': el_href
}
with open('spice.json', 'a') as file:
json.dump(news_dict, file, indent=4, ensure_ascii=False)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ну, наверное, правильно будет так:
news_dict = []
for el in html.select('.news> p> a '):
el_name = el.text
el_href =el.get('href')
news_dict.append({
'Приправа': el_name,
'ссылка': el_href
})
У вас всё-таки список словарей должен быть. И не надо его очищать каждую итерацию цикла.