Как объединить структуру внутри структуры?
Как вариант:
cat_goods_dict = defaultdict(list)

for d in data[0]['sub_cats'] + data[1:]:
	  cat_goods_dict[d['cat_name']] += d['goods_inside']

new_data = [
	  {'cat_name': cat_val, 'goods_inside': goods_val}
	  for cat_val, goods_val in cat_goods_dict.items()
]
import itertools
struct_resale = struct.pop(0)

lst = []
for x, y in itertools.product(struct, struct_resale['sub_cats']):
    if x['cat_name'] == y['cat_name']:
        c = x.copy()
        c.update(y)
        c['goods_inside'] = x['goods_inside'] + y['goods_inside']
        lst.append(c)

print(lst)

Вроде как работает. Но не знаю, может есть вариант получше?