diff --git a/comm/unit/readRelevance.py b/comm/unit/readRelevance.py index dd3f200..287afed 100644 --- a/comm/unit/readRelevance.py +++ b/comm/unit/readRelevance.py @@ -25,8 +25,18 @@ def get_value(data, value): # for key in data: # __relevance = get_value(data[key], value) for key in data: - if isinstance(data[key], dict) or isinstance(data[key], list): + if isinstance(data[key], dict): get_value(data[key], value) + elif isinstance(data[key], list): + for each in data[key]: + if isinstance(each, dict): + get_value(each, value) + # for each in data[key]: + # if isinstance(each, dict): + # break + else: + if key == value: + __relevance.append(data[key]) else: if key == value: __relevance.append(data[key]) @@ -54,8 +64,11 @@ def get_relevance(data, relevance_list, relevance=None): # 去除参数[n]标识 for index, value in enumerate(relevance_list): mark = re.findall(r"\[\-?[0-9]*\]", value) - if mark: - relevance_list[index] = value.strip(mark[0]) + # if mark: + # relevance_list[index] = value.strip(mark[0]) + for m in mark: + value = value.replace(m, '') + relevance_list[index] = value # 去除重复参数 relevance_list = list(set(relevance_list)) diff --git a/comm/unit/replaceRelevance.py b/comm/unit/replaceRelevance.py index 746749d..c1ec491 100644 --- a/comm/unit/replaceRelevance.py +++ b/comm/unit/replaceRelevance.py @@ -66,21 +66,32 @@ def replace_relevance(param, relevance=None): # 关联参数多值时指定索引值替换 mark = re.findall(r"\[\-?[0-9]*\]", each) # 判断关联参数是否指定索引值var[n] - if mark: + if len(mark)==0: + if isinstance(relevance[each], list): + value = relevance[each][0] + else: + value = relevance[each] + elif len(mark)==1: var = each.strip(mark[0]) n = int(mark[0].strip('[').strip(']')) value = relevance[var][n] each = each.replace('[', '\[').replace(']', '\]') else: - if isinstance(relevance[each], list): - value = relevance[each][0] - else: - value = relevance[each] + var = each + for m in mark: + var = var.replace(m, '') + n1 = int(mark[0].strip('[').strip(']')) + n2 = int(mark[1].strip('[').strip(']')) + value = relevance[var][n1][n2] + each = each.replace('[', '\[').replace(']', '\]') # 生成正在表达式并替换关联参数 pattern = re.compile('\${' + each + '}') try: - param = re.sub(pattern, value, param) + if param.strip('${' + each + '}'): + param = re.sub(pattern, str(value), param) + else: + param = re.sub(pattern, value, param) except TypeError: param = value except KeyError: