from collections import namedtuple Reg = namedtuple("Reg", "addr tag kind") def load_map(path, site): import openpyxl wb = openpyxl.load_workbook(path, read_only=True) sheet = wb[site] if site in wb.sheetnames else wb.active out = [] for row in sheet.iter_rows(min_row=2, values_only=True): if not row or row[0] is None: continue out.append(Reg(int(row[0]), str(row[1]), str(row[2] or "HR"))) return out