Запись json-объектов без отступа

Задача состоит в переборе и присваивании новых "названий" в json таблицу, но проблема такова, что запись туда введется без отступа с каждой новой строкой, отчего все объекты вкладываются в друг друга. Требуется помощь по решению проблемы. Заранее спасибо.

# Открытие вышесозданного файла и чтение информации
with open('products.json', encoding='utf-8') as json_file:
    products_catalog = json.load(json_file)




for products_catalog[0] in products_catalog:
    category = products_catalog[0]['category']
    name = products_catalog[0]['name']
    brief_description = products_catalog[0]['part']
    sku = products_catalog[0]['sku']
    producer = products_catalog[0]['vendor']
    weight = math.ceil(products_catalog[0]['weight'])

    products_list = {
        "category": category,
        "name": name,
        "briefdescription": brief_description,
        "sku": sku,
        "producer": producer,

        "weight": weight
    }


    completed_data = json.dumps(products_list)
    with open('products_catalog_parsed.json', 'a', encoding='utf-8') as products_catalog_parsedfile:
        json.dump(products_list, products_catalog_parsedfile, indent=4, ensure_ascii=False)

введите сюда описание изображения

Список из скриншота:

{
    "category": 408,
    "name": "Монитор AOC 24\" e2460Sh Black TN LED (2GTG)ms 16:9 DVI HDMI M/M 20M:1 250cd USB ",
    "briefdescription": "E2460SH",
    "sku": 527044,
    "producer": "AOC",
    "weight": 6
}{
    "category": 406,
    "name": "Монитор 19.5\" PHILIPS 203V5LSB26/62(10) Black (LED, LCD, Wide, 1600x900, 5 ms, 90°/50°, 200 cd/m, 10M:1)",
    "briefdescription": "203V5LSB26/62(10)",
    "sku": 531013,
    "producer": "Philips",
    "weight": 3
}{
    "category": 466,
    "name": "Чайник электрический Gorenje K10C 1л. 1630Вт белый (корпус: керамика)",
    "briefdescription": "K10C",
    "sku": 767181,
    "producer": "Gorenje",
    "weight": 2
}{
    "category": 279,
    "name": "Процессор CPU Intel Core i3-3220 Ivy Bridge OEM {3.3ГГц, 2х256КБ+3МБ, Socket1155}",
    "briefdescription": "CM8063701137502SR0RG",
    "sku": 155291,
    "producer": "Intel",
    "weight": 2
}{
    "category": 328,
    "name": "Видеокарта Gigabyte PCI-E GV-N210D3-1GI nVidia GeForce 210 1024Mb 64bit DDR3 590/1200 DVIx1/HDMIx1/CRTx1/HDCP Ret low profile",
    "briefdescription": "GV-N210D3-1GI",
    "sku": 565032,
    "producer": "Gigabyte",
    "weight": 1
}{
    "category": 939,
    "name": "Расходные материалы Kyocera-Mita 302HS94032 Узел Роликов подачи бумаги в сборе",
    "briefdescription": "2HS94032",
    "sku": 288086,
    "producer": "Hewlett-Packard",
    "weight": 1
}

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

Автор решения: Andy Pavlov

Немного сократил Ваш код и добавил обработку текста на входе для принятия json.loads().

import json

with open('products.json', encoding='utf-8') as file:
    raw = file.read()
    formated = '[{}]'.format(raw.replace('}{', '},{'))

products_catalog = json.loads(formated)
keys = ['category', 'name', 'briefdescription', 'sku', 'producer', 'weight']
products_list = [{k: row.get(k, None) for k in keys} for row in products_catalog]

# Дальше оставил как есть
completed_data = json.dumps(products_list)
with open('products_catalog_parsed.json', 'a', encoding='utf-8') as products_catalog_parsedfile:
    json.dump(products_list, products_catalog_parsedfile, indent=4, ensure_ascii=False)
→ Ссылка
Автор решения: empty

Короче я просто не стал заносить все данные в цикле с помощью append в файл, а занес их в list и потом готовый list вывел как один файл и все заработало.

→ Ссылка