下面是处理请求参数格式为 [{},{}], 但是遇到其他的格式有参数依赖就无法处理了
例如 { { } } 这种格式

def request_data_nest_replace(access_value, dict_v):
    '''
    请求参数多层嵌套,处理嵌套里面的jsonpath表达式转为值,
    但是数字也会被变为字符串,加标识再写一个方法(int_replace_str)进行处理
    :access_value :参数池
    :param dict_v: 多层嵌套参数的值当前支持的格式[{},{}]
    :return: 多层请求参数被替换后的值
    '''
    replace_list = re.findall('^(.*?)^', str(dict_v))
    logger.info(f'多层请求参数中的替换表达式:{replace_list}')
    for i in replace_list:
        if '$.' in i:
            replace_value = jsonpath(access_value, i)
            if replace_value != False:
                replace_value = replace_value[0]
        if 'random' in i:
            replace_value = eval(i)
        bei_replace = f'^{i}^'  # '^$.waybillid^'
        if type(replace_value) == int:
            dict_v = str(dict_v).replace(bei_replace, 'int' + str(replace_value))
        else:
            dict_v = str(dict_v).replace(bei_replace, str(replace_value))
    new_dict_v = int_replace_str(eval(dict_v))
    return new_dict_v


↙↙↙阅读原文可查看相关链接,并与作者交流