# coding=utf-8 import os import xlrd base_path = os.path.join(os.path.dirname(__file__), "files") def get_tag_old_new_relations(): relation_dict = {} try: relation_file = os.path.join(base_path, "新老标签映射-v09-1216.xlsx") relation_data = xlrd.open_workbook(relation_file) relation_sheet = relation_data.sheet_by_name("新老标签映射") for row in range(2, relation_sheet.nrows): key = relation_sheet.cell_value(row, 1) value = relation_sheet.cell_value(row, 3) if key not in relation_dict: relation_dict[key] = value return relation_dict except Exception as e: print(str(e)) return relation_dict def remove_null(l): return list(filter(None, l)) def remove_duplicated(l): new_list = list(set(l)) new_list.sort(key=l.index) return new_list def get_new_tag_data(): res = {} try: tag_file = os.path.join(base_path, "新标签1218.xlsx") tag_data = xlrd.open_workbook(tag_file) tag_sheet = tag_data.sheet_by_name("标签") for row in range(1, tag_sheet.nrows): key = tag_sheet.cell_value(row, 0) first_demands = [] second_demands = [] first_solutions = [] second_solutions = [] positions = [] second_demands.append(tag_sheet.cell_value(row, 2)) second_demands.append(tag_sheet.cell_value(row, 3)) first_demands.append(tag_sheet.cell_value(row, 4)) second_solutions.append(tag_sheet.cell_value(row, 5)) second_solutions.append(tag_sheet.cell_value(row, 6)) second_solutions.append(tag_sheet.cell_value(row, 7)) first_solutions.append(tag_sheet.cell_value(row, 8)) for i in range(9, 22): positions.append(tag_sheet.cell_value(row, i)) res[key] = [ remove_null(first_demands), remove_null(second_demands), remove_null(first_solutions), remove_null(second_solutions), remove_null(positions) ] return res except Exception as e: print(str(e)) return res def get_new_tags_from_old_tags(old_tags, old_new_dict): try: new_tags = [] for i in old_tags: if old_new_dict.get(i): new_tags.append(old_new_dict.get(i)) return remove_duplicated(new_tags) except Exception as e: print(str(e)) return [] def get_tag_specific_data_from_old_tags(old_tags, old_new_dict, new_tag_data, index): try: new_tags = [] for i in old_tags: if old_new_dict.get(i): new_tags.append(old_new_dict.get(i)) res = [] for i in new_tags: if new_tag_data.get(i): res.extend(new_tag_data[i][index]) return remove_duplicated(res) except Exception as e: print(str(e)) return [] def get_first_demands_from_old_tags(old_tags, old_new_dict, new_tag_data): return get_tag_specific_data_from_old_tags(old_tags, old_new_dict, new_tag_data, 0) def get_second_demands_from_old_tags(old_tags, old_new_dict, new_tag_data): return get_tag_specific_data_from_old_tags(old_tags, old_new_dict, new_tag_data, 1) def get_first_solutions_from_old_tags(old_tags, old_new_dict, new_tag_data): return get_tag_specific_data_from_old_tags(old_tags, old_new_dict, new_tag_data, 2) def get_second_solutions_from_old_tags(old_tags, old_new_dict, new_tag_data): return get_tag_specific_data_from_old_tags(old_tags, old_new_dict, new_tag_data, 3) def get_positions_from_old_tags(old_tags, old_new_dict, new_tag_data): return get_tag_specific_data_from_old_tags(old_tags, old_new_dict, new_tag_data, 4)