I have a Houdini python script that saves node preset as json file. Can you make a load script to use that data on selected node, recreating parameters if needed (with folder structure) and setting correct values and defaults?

import os
import json
import hou
from collections.abc import Mapping
from PySide2.QtWidgets import (QWidget, QMainWindow)
from PySide2.QtWidgets import QTreeWidget, QTreeWidgetItem, QVBoxLayout, QLineEdit, QPushButton, QAbstractItemView, \
    QHBoxLayout


def get_value(parm):
    expressionLanguage = None
    try:
        value = parm.expression()
        expressionLanguage = parm.expressionLanguage()
        if expressionLanguage == hou.exprLanguage.Hscript:
            expressionLanguage = 'hou.exprLanguage.Hscript'
        elif expressionLanguage == hou.exprLanguage.Hscript:
            expressionLanguage = 'hou.exprLanguage.Hscript'
    except:
        try:
            value = parm.unexpandedString()
        except:
            value = parm.eval()
    return value, expressionLanguage


def custom_serializer(obj):
    if isinstance(obj, hou.EnumValue):
        print(obj.name())
        return str(obj)
    if isinstance(obj, Mapping):
        print(obj)
        return obj
    raise TypeError(f"Object of type {type(obj)} is not JSON serializable")


class ParmTemplateCollector:
    def __init__(self, parm_tuple):
        self.parm = parm_tuple
        self.parm_template = self.collect_properties()

    def collect_properties(self):
        try:
            disableWhen = self.parm.parm