def handleField(self, data): title = data.pop(0) # 表头 dataType = { 'ULongLong': ['long long', '8'], 'Float': ['float', '4'], 'float': ['float', '4'], 'VC(15)': ['string', '15'], 'VC(31)': ['string', '31'], 'VC(63)': ['string', '63'], 'VC(127)': ['string', '127'], 'VC(255)': ['string', '255'], 'VC(511)': ['string', '511'], 'VC(1023)': ['string', '1023'], 'VC(2047)': ['string', '2047'], 'INT': ['int', '4'], 'Short': ['short', '2'], 'N(1)': ['string', '1'], 'D': ['datetime', '8'] } cache = collections.defaultdict(list) for one in data: cache[one[0]].append(one) for tab in cache: clsitem = Document.get_cls_byname(tab) if clsitem is None: continue for field in cache[tab]: attr = ['', '', ''] bass = False for col in range(len(field)): fldDescAttr = title[col] if fldDescAttr == '列英文名称(COLUMN_NAME_ENG)': attr[0] = field[col] elif fldDescAttr == '数据类型(DATATYPE)': if field[col] in dataType.keys(): dt = dataType[field[col]] attr[1] = dt[0] attr[2] = dt[1] else: print('表%s的字段%s没有匹配的字段类型%s' % (tab, field[1], field[col])) elif fldDescAttr == '引用表名(R_TABLE_NAME)': refclsitem = Document.get_cls_byname(field[col]) if refclsitem is not None: bass = True lnItem = Document.createLineItem(LineType.ass) Document.createLink(clsitem, refclsitem, lnItem) if bass is False: clsitem.add_attr(attr)