Как создать цикл для сокращения кода и выборки нужных категорий?

Мне требуется вынуть данные из "https://b2b.i-t-p.pro/download/catalog/json/catalog_tree.json" и проблема такова что для каждой категории я скопировал код в следствии чего он стал очень огромным. Слышал что можно с помощью цикла сделать такую же выборку но не понимаю как в данном случае именно сделать, буду благодарен помощи

# Каталог
catalogPayload = session  # Заносим куки в гет запрос для вытягивания каталога
catalogResponse = requests.request("GET", catalogUrl, headers=headers, data=catalogPayload)  # Создаем гет запрос на урл каталога
catalogData = catalogResponse.json()  # Конвертируем ответ в json | class 'list'


category_usbAndDisks = catalogData[3]
category_usbAndDisks_childrens = category_usbAndDisks['childrens']

category_pcAccessories = catalogData[4]  # Выделяем нужную нам категорию | Комплектующие для ПК
category_pcAccessories_childrens = category_pcAccessories['childrens'] # Выделяем подкатегории Комплектующих для ПК

category_laptopsAndPhones = catalogData[6]
category_laptopsAndPhones_childrens = category_laptopsAndPhones['childrens']

category_accesories = catalogData[18]
category_accesories_childrens = category_accesories['childrens']

category_readyPC = catalogData[20]
category_readyPC_childrens = category_readyPC['childrens']


raw_data_list = []  # Временное размещение данных
parentId = 0
# ФЛЭШ ПАМЯТЬ, ВНЕШНИЕ ДИСКИ, ПРИВОДЫ
name = category_usbAndDisks['name']
id = category_usbAndDisks['id']
current_catalogData = {
    "categoryid": id,
    "externalid": id,
    "name": name,
    "parentcategory": parentId
}
completed_data = json.dumps(raw_data_list)
raw_data_list.append(current_catalogData)
parentId = 0

# Выгрузка подкатегорий категории ФЛЭШ ПАМЯТЬ, ВНЕШНИЕ ДИСКИ, ПРИВОДЫ
for category_usbAndDisks_childrens[0] in category_usbAndDisks_childrens:
    name = category_usbAndDisks_childrens[0]['name']
    id = category_usbAndDisks_childrens[0]['id']
    parentId = category_usbAndDisks_childrens[0]['parentId']

    catalog_data = {
        "categoryid": id,
        "externalid": id,
        "name": name,
        "parentcategory": parentId
    }

    raw_data_list.append(catalog_data)
    completed_data = json.dumps(raw_data_list)
parentId = 0
# КОМПЛЕКТУЮЩИЕ ДЛЯ КОМПЬЮТЕРОВ
name = category_pcAccessories['name']
id = category_pcAccessories['id']
current_catalogData = {
    "categoryid": id,
    "externalid": id,
    "name": name,
    "parentcategory": parentId
}
completed_data = json.dumps(raw_data_list)
raw_data_list.append(current_catalogData)

# Выгрузка подкатегорий категории КОМПЛЕКТУЮЩИЕ ДЛЯ КОМПЬЮТЕРОВ
for category_pcAccessories_childrens[0] in category_pcAccessories_childrens:
    name = category_pcAccessories_childrens[0]['name']
    id = category_pcAccessories_childrens[0]['id']
    parentId = category_pcAccessories_childrens[0]['parentId']

    catalog_data = {
        "categoryid": id,
        "externalid": id,
        "name": name,
        "parentcategory": parentId
    }

    raw_data_list.append(catalog_data)
    completed_data = json.dumps(raw_data_list)
parentId = 0
# НОУТБУКИ, ПЛАНШЕТЫ, ТЕЛЕФОНЫ
name = category_laptopsAndPhones['name']
id = category_laptopsAndPhones['id']
current_catalogData = {
    "categoryid": id,
    "externalid": id,
    "name": name,
    "parentcategory": parentId
}
completed_data = json.dumps(raw_data_list)
raw_data_list.append(current_catalogData)


# Выгрузка подкатегорий категории НОУТБУКИ, ПЛАНШЕТЫ, ТЕЛЕФОНЫ
for category_laptopsAndPhones_childrens[0] in category_laptopsAndPhones_childrens:
    name = category_laptopsAndPhones_childrens[0]['name']
    id = category_laptopsAndPhones_childrens[0]['id']
    parentId = category_laptopsAndPhones_childrens[0]['parentId']

    catalog_data = {
        "categoryid": id,
        "externalid": id,
        "name": name,
        "parentcategory": parentId
    }

    raw_data_list.append(catalog_data)
    completed_data = json.dumps(raw_data_list)
parentId = 0
# ПЕРИФЕРИЯ И АКСЕССУАРЫ
name = category_accesories['name']
id = category_accesories['id']
current_catalogData = {
    "categoryid": id,
    "externalid": id,
    "name": name,
    "parentcategory": parentId
}
completed_data = json.dumps(raw_data_list)
raw_data_list.append(current_catalogData)


# Выгрузка подкатегорий категории ПЕРИФЕРИЯ И АКСЕССУАРЫ
for category_accesories_childrens[0] in category_accesories_childrens:
    name = category_accesories_childrens[0]['name']
    id = category_accesories_childrens[0]['id']
    parentId = category_accesories_childrens[0]['parentId']

    catalog_data = {
        "categoryid": id,
        "externalid": id,
        "name": name,
        "parentcategory": parentId
    }

    raw_data_list.append(catalog_data)
    completed_data = json.dumps(raw_data_list)
parentId = 0
# КОМПЬЮТЕРЫ И МОНОБЛОКИ
name = category_readyPC['name']
id = category_readyPC['id']
current_catalogData = {
    "categoryid": id,
    "externalid": id,
    "name": name,
    "parentcategory": parentId
}
completed_data = json.dumps(raw_data_list)
raw_data_list.append(current_catalogData)


# Выгрузка подкатегорий категории КОМПЬЮТЕРЫ И МОНОБЛОКИ
for category_readyPC_childrens[0] in category_readyPC_childrens:
    name = category_readyPC_childrens[0]['name']
    id = category_readyPC_childrens[0]['id']
    parentId = category_readyPC_childrens[0]['parentId']

    catalog_data = {
        "categoryid": id,
        "externalid": id,
        "name": name,
        "parentcategory": parentId
    }

    raw_data_list.append(catalog_data)
    completed_data = json.dumps(raw_data_list)
parentId = 0

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

Автор решения: Proksima

У меня получилось что-то типо такого:

catalogPayload = session  # Заносим куки в гет запрос для вытягивания каталога
catalogResponse = requests.request("GET", catalogUrl, headers=headers,
                                   data=catalogPayload)  # Создаем гет запрос на урл каталога
catalogData = catalogResponse.json()  # Конвертируем ответ в json | class 'list'

numbers = {3, 4, 6, 18, 20}  # позиции категорий в изначальном списке catalogData
raw_data_list = []  # Временное размещение данных
parentId = 0
for i in numbers:
    # Создание словаря для подкатегории и добавление в raw_data_list
    category = catalogData[i]
    category_childrens = category['childrens']
    name = category_childrens['name']
    id = category_childrens['id']
    current_catalogData = {
        "categoryid": id,
        "externalid": id,
        "name": name,
        "parentcategory": parentId
    }
    raw_data_list.append(current_catalogData)
    completed_data = json.dumps(raw_data_list)

    # Выгрузка подкатегории категории
    for category_childrens[0] in category_childrens:
        name = category_childrens[0]['name']
        id = category_childrens[0]['id']
        parentId = category_childrens[0]['parentId']
        catalog_data = {
            "categoryid": id,
            "externalid": id,
            "name": name,
            "parentcategory": parentId
        }
        raw_data_list.append(catalog_data)
        completed_data = json.dumps(raw_data_list)
→ Ссылка