def METHOD_NAME(project_id, cluster_id, ns_list, key_list):
    """获取多个变量值
    返回格式: {ns_id: ["key": "key", "name": "name"}]}
    如果key不存在, 返回空字符串(兼容老的逻辑)
    """
    variable_dict = {}
    if not ns_list:
        return variable_dict
    keyList = ",".join(key_list)
    project_code = paas_cc.get_project_code(local.request.user.token.access_token, project_id)
    namespace_res = paas_cc.get_namespace_list(local.request.user.token.access_token, project_id, limit=10000)
    namespace_data = namespace_res.get("data", {}).get("results") or []
    namespace_dict = {str(i["id"]): i for i in namespace_data}
    client = k8s.K8SClient("", project_id, "", settings.DEFAULT_BCS_API_ENV)
    for ns_id in ns_list:
        ns_info = namespace_dict.get(ns_id)
        if not ns_info:
            continue
        ns_name = ns_info['name']
        ns_var_map = client.render_vars(
            project_code, ns_info['cluster_id'], ns_name, local.request.user.username, keyList
        )
        _v_list = []
        for _key in key_list:
            if _key in ns_var_map:
                _v_list.append(ns_var_map[_key])
            else:
                _v_list.append({"key": _key, "name": _key, "value": ""})
        variable_dict[ns_id] = _v_list
    return variable_dict