как объеденить полученные данные с парсера продуктов в один файл csv в пайтоне?

with open("all_items_in_1.json") as file:
    all_categories = json.load(file)

iteration_count = int(len(all_categories)) - 1
count = 0
print(f"Всего итераций: {iteration_count}")


for category_name, category_href in all_categories.items():





    rep = [",", " ", "-", "'"]
    for item in rep:
       if item in category_name:


           category_name = category_name.replace(item, "_")

    req = requests.get(url=category_href, headers=headers)
    src = req.text

    with open(f"data/{count}_{category_name}.html", "w", encoding="utf-8") as file:

        file.write(src)
    with open(f"data/{count}_{category_name}.html", encoding="utf-8") as file:

        src = file.read()


    soup = BeautifulSoup(src, "lxml" )


    head_name = soup.find(class_="product-page-info__title mb-15 text-center text-lg-left").text
    sku_name = soup.find(class_="product-page-info__sku mb-5").find("span").text
    price_name = soup.find(class_="product-page-info__price text-center text-lg-left").text
    size_name = soup.find(class_="product-options__section d-flex flex-wrap").text



    with open(f"data/{count}_{category_name}.csv", "w", encoding="utf-8") as file:
        writer = csv.writer(file)
        writer.writerow(
            {

                head_name,
                sku_name,
                price_name,
                size_name

            }
        )

    count += 1
    print(f"# Итерация {count}. {category_name} записан...")
    iteration_count = iteration_count - 1

    if iteration_count == 0:
        print("Работа завершена")
        break

    print(f"Осталось итераций: {iteration_count}")
    time.sleep(random.randrange(2, 4))

**с левой стороны для каждого продукта создается отдельный csv файл **


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

Автор решения: Константин Николаевич Бояр II

Если у вас в двух файлах одинаковое количество столбцов, то можно попробовать наполнять один список для 2 категорий, и его уже выгружать в csv файл, выглядеть это будет примерно так:

import csv
import pandas as pd

list = []
file_name = 'yourName'

for product in all_products:
    
    *Тут данные которые вы забираете*
    rows = row1, row2, row3
    list.append(rows)

for product in second_catecory:

    *Данные с другой категории товара*
    row_second_category = row1, row2, row3
    list.append(rows)

df = pd.DataFrame(list, 
                         columns=['Row1','Row2', 'Row3'])
        df.to_csv(file_name, encoding='UTF-8')          
        print(f'file saved to {file_name}.csv')  
    

→ Ссылка