def load(obj):
    """
    Load a ValueTree instance from its dict representation.

    :param obj:
    :type obj: dict
    :return:
    :rtype: ValueTree
    """
    values = ValueTree()
    def _load(_obj, container):
        for name,value in _obj.items():
            if isinstance(value, dict):
                path = make_path(name)
                container.put_container(path)
                _load(value, container.get_container(path))
            elif isinstance(value, list):
                for item in value:
                    container.append_field(ROOT_PATH, name, item)
            elif isinstance(value, str):
                container.put_field(ROOT_PATH, name, value)
            else:
                raise ValueError()
    _load(obj, values)
    return values
Load a ValueTree instance from its dict representation.

    :param obj:
    :type obj: dict
    :return:
    :rtype: ValueTree