@staticmethod
def set_value_to_nested_dict(dict_data, map_str, value, separator='.'):
    """
            Set value to nested dict
        :param dict_data:
        :param map_str: key1.key2.key3
        :param value:
        :param separator: for split map string of path. Default: '.'
        :return:
        """
    map_list = str(map_str).split(separator)
    pointer = dict_data
    for ind in range(len(map_list)):
        key = map_list[ind]
        if '[' in key:
            if ind == len(map_list) - 1:
                pointer[int(key[1:-1])] = value
                return
            pointer = pointer[int(key[1:-1])]
        elif ind == len(map_list) - 1:
            pointer[key] = value
            return
        elif key in pointer:
            pointer = pointer[key]
        else:
            pointer[key] = {}
            pointer = pointer[key]
