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