Для работы с xml нам понадобится модуль xml.etree.ElementTree, а для работы с csv - модуль csv. Исходный код: #Импорт необходимых модулей
import xml.etree.ElementTree as et
import csv
#Открываем файл data.csv на чтение. Если его нет, то он интерпретатор его создаст автоматически
result_data = open('data.csv', 'w')
#Записываем в tree данные из xml
tree = et.parse('products.xml')
#Считываем содержимое корневого элемента
root = tree.getroot()
#Создаем список заголовков для записи первой строки в файл data.csv
result_head = []
#Добавляем заголовки в список
result_head.append('category')
result_head.append('product_id')
result_head.append('name')
result_head.append('Цена')
#Записываем заголовки в первую строчку data.csv
csvwriter.writerow(result_head)
#Ищем все дочерние элементы в корневом элементе shop
for child in root.findall('shop'):
#Ищем содержимое 3-го дочернего элемента shop и записываем в product_list
product_list = child[2]
#Ищем в products все product
for product