Как мне разместить список под списком в файле json


with open("index.html") as file:
        src = file.read()

    soup = bs4.BeautifulSoup(src, "lxml")
    # ищем и собирем названия продуктов
    products_names = soup.find_all(
        "div", class_="card-sale__col card-sale__col_content")
    products_all_names = []
    for product_name in products_names:
        try:
            prod_name = product_name.find(
                "div", class_="card-sale__title").find("p").text.strip()
            products_all_names.append(prod_name)
        except Exception:
            continue

    # ищем и собирем старые цены продуктов
    products_old_price = soup.find_all("div", class_="label__price_old")
    products_all_old_price = []
    for product_old_price in products_old_price:
        try:
            products_ones_integer_price = product_old_price.find(
                "span", class_="label__price-integer").text.strip()
            products_ones_decimal_price = product_old_price.find(
                "span", class_="label__price-decimal").text.strip()
            products_all_old_price.append(
                f"{products_ones_integer_price},{products_ones_decimal_price}Р")
        except Exception:
            continue

    # ищем и собирем новые цены продуктов
    products_prices = soup.find_all("div", class_="label__price_new")
    products_all_price = []
    for product_price in products_prices:
        try:
            products_ones_integer_price = product_price.find(
                "span", class_="label__price-integer").text.strip()
            products_ones_decimal_price = product_price.find(
                "span", class_="label__price-decimal").text.strip()
            products_all_price.append(
                f"{products_ones_integer_price},{products_ones_decimal_price}Р")
        except Exception:
            continue

    # ищем и собираем дату акции
    products_sale_date = soup.find_all("div", class_="card-sale__date")
    products_all_sale_date = []
    for product_sale_date in products_sale_date:
        product_start_sale_date = product_sale_date.find(
            "p", class_="")
        product_finish_sale_date = product_start_sale_date.find_next(
            "p", class_="").text.strip()
        products_all_sale_date.append(
            f"{product_start_sale_date.text} {product_finish_sale_date}")

    # создадим карточку одного товара
    product_ones_card = ({
        "Название товра": prod_name,
        "Старая цена товара": f"{products_ones_integer_price},{products_ones_decimal_price}Р",
        "Новая цена товара": f"{products_ones_integer_price},{products_ones_decimal_price}Р",
        "Сроки проведения акции": f"{product_start_sale_date.text} {product_finish_sale_date}"
    })

    product_card = soup.find_all("a", class_="card-sale_catalogue")
    lenght = len(product_card)
    while lenght > 0:
        products_all_cards = []
        products_all_cards.append(product_ones_card)
        lenght -= 1
    with open("products.json", "w", encoding="utf-8") as file:
        json.dump(products_all_cards, file, indent=4, ensure_ascii=False)





на выходе я хотел-бы получить


{
    "Название товара": "День красоты",
     "Старая цена товара": "−10%,00Р",
     "Новая цена товара": "−10%,00Р",
     "Сроки проведения акции": "с 22 апреля до 23 апреля"
}
{
    "Название товара": "Другое",
     "Старая цена товара": "−10%,00Р",
     "Новая цена товара": "−10%,00Р",
     "Сроки проведения акции": "с 22 апреля до 23 апреля"
}
{
    "Название товара": "Другое",
     "Старая цена товара": "−10%,00Р",
     "Новая цена товара": "−10%,00Р",
     "Сроки проведения акции": "с 22 апреля до 23 апреля"
}
{
    "Название товара": "Другое",
     "Старая цена товара": "−10%,00Р",
     "Новая цена товара": "−10%,00Р",
     "Сроки проведения акции": "с 22 апреля до 23 апреля"
}

А выводит только один блок

{
    "Название товара": "Другое",
     "Старая цена товара": "−10%,00Р",
     "Новая цена товара": "−10%,00Р",
     "Сроки проведения акции": "с 22 апреля до 23 апреля"
}

заранее спасибо


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