def saveData_stream_Trans(self, strDir = ""): #提取当前数据 if(strDir == ""): strDir = self.dir dictDatas = {} if(True): myDebug.Print("... load data(" + self.name + ")...") path = strDir + self.fileName + ".csv" pDt_csv = myIO_xlsx.DtTable() pDt_csv.dataFieldType = ['datetime', 'float', 'float', 'float'] #数据字段类型集 pDt_csv.Load_csv(path, isUtf = True) #组装数据 nRows = len(pDt_csv.dataMat) for x in range(nRows - 1, -1, -1): pData = copy.deepcopy(self.data) pData.datetime = None #清空时间(必须) pData.fromValueList(pDt_csv.dataMat[x]) #由表数据还原 dictDatas[pData.getTime()] = pData #字典排序 keys = list(dictDatas.keys()) keys.sort(key = None, reverse = True) #组装数据 pDt = myIO_xlsx.DtTable() pDt.dataField = self.data.csvHead().split(',') pDt.dataMat = [] for x in keys: pDt.dataMat.append(dictDatas[x].toValueList()) #保存基础数据 myIO.mkdir(strDir) pDt.Save(strDir, self.fileName, row_start = 0, col_start = 0, cell_overwrite = True, sheet_name = self.name, row_end = -1, col_end = -1, bSave_AsStr = False)
def _Save(self): dtSetting = myIO_xlsx.DtTable() #监听设置信息表 dtSetting.dataName = "dataName" dtSetting.dataField = self.lstFields dtSetting.dataFieldType = [ "", "", "", "", "bool", "", "bool", "", "", "" ] # 组装行数据 for pSet in self.sets: if (not pSet.IsEnable()): continue for x in pSet.settings: pSetting = pSet.settings[x] if (pSetting.IsNull()): continue pValues = [] pValues.append(pSet.stockInfo.extype + "." + pSet.stockInfo.code_id) pValues.append(pSet.stockInfo.code_name) pValues.append(pSet.stockInfo.type) pValues.append(pSet.stockInfo.area) pValues.append(pSet.stockInfo.IsIndex()) pValues.append(pSetting.monitorTag) pValues.append(pSetting.isValid) pValues.append(pSetting.setStr) pValues.append(str(pSetting.msgUsers).replace(',', ',')) pValues.append(pSetting.mark) dtSetting.dataMat.append(pValues) # 保存 # dtSetting.Save(self.Dir_Setting, "Setting_Quote", 0, 0, True, "监听设置表", -1, -1, False) dtSetting.Save_csv(self.Dir_Setting, "Setting_Quote", True, 0, 0)
def _Save(self): dtUser = myIO_xlsx.DtTable() #用户信息表 dtUser.dataName = "dataName" dtUser.dataField = self.lstFields dtUser.dataFieldType = [ 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'string', 'datetime', 'datetime' ] # 组装行数据 keys = self.usrList.keys() for x in keys: pUser = self.usrList[x] pValues = [] pValues.append(pUser.usrID_sys) pValues.append('、'.join(pUser.usrRelationID_sys)) pValues.append(pUser.usrName) pValues.append(pUser.usrName_Nick) pValues.append(pUser.usrID) pValues.append(pUser.usrPlat) pValues.append(pUser.usrName_Full) pValues.append('、'.join(pUser.usrPhones)) pValues.append('、'.join(pUser.usrTags)) pValues.append('、'.join(pUser.usrAddresss)) pValues.append(pUser.usrRamak) pValues.append(pUser.usrNotes) pValues.append(pUser.usrTime_Regist.strftime("%Y-%m-%d %H:%M:%S")) pValues.append( pUser.usrTime_Logined_Last.strftime("%Y-%m-%d %H:%M:%S")) dtUser.dataMat.append(pValues) # 保存 # dtUser.Save(self.Dir_Setting, "UserInfo", 0, 0, True, "用户信息表") dtUser.Save_csv(self.Dir_Setting, "UserInfo", True, 0, 0)
def _Init(self): #提取字段信息 #dtUser = myIO_xlsx.loadDataTable(self.Path_SetUser, 0, 1) #用户信息 dtUser = myIO_xlsx.DtTable() dtUser.Load_csv(self.Path_SetUser, 1, 0, isUtf=True) if (len(dtUser.dataMat) < 1 or len(dtUser.dataField) < 1): return lstFields_ind = dtUser.Get_Index_Fields(self.lstFields) #转换为功能权限对象集 for dtRow in dtUser.dataMat: pUser = myRoot_Usr("", dtRow[lstFields_ind["用户名"]]) pUser.usrID_sys = dtRow[lstFields_ind["ID"]] pUser.usrRelationID_sys = dtRow[ lstFields_ind["RelationIDs"]].split('、') pUser.usrName_Nick = dtRow[lstFields_ind["用户昵称"]] pUser.usrID = dtRow[lstFields_ind["用户ID"]] pUser.usrName_Full = dtRow[lstFields_ind["用户姓名"]] if (pUser.usrName_Full != ""): pUser.usrRelations.append(pUser.usrName_Full) pUser.usrPlat = dtRow[lstFields_ind["来源平台"]] pUser.usrPhones = dtRow[lstFields_ind["电话"]].split('、') pUser.usrTags = dtRow[lstFields_ind["标签"]].split('、') pUser.usrAddresss = dtRow[lstFields_ind["地址"]].split('、') pUser.usrRamak = dtRow[lstFields_ind["备注"]] pUser.usrNotes = dtRow[lstFields_ind["描述"]] pUser.usrTime_Regist = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["注册时间"]]) pUser.usrTime_Logined_Last = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["最后登录时间"]]) pUser.usrLoaded = True self._Index(pUser) #索引用户信息
def _Init_DB(self, path): #提取字段信息 dtDB = myIO_xlsx.DtTable() dtDB.Load_csv(path, 1, 0, True, 0, ',', isUtf=True) lstFields = [ "编号", "用户名", "操作类型", "标的代码", "标的名称", "标的所属市场", "标的所属市场板块", "标的价格", "标的价格-期望", "标的仓位", "标的所属行业", "标的所属概念", "交易类型", "交易子类型", "交易数量", "交易金额", "交易量仓位占比", "交易收益", "交易收益-总计", "交易时间", "是否删除", "记录人", "记录时间", "备注" ] if (dtDB.sheet == None): dtDB.dataField = lstFields lstFields_ind = dtDB.Get_Index_Fields(lstFields) self.lstFields = lstFields self.pathData = path #装载账单记录 self.usrDB = {} self.indLst = [] for dtRow in dtDB.dataMat: trade = myObj_Trade() if (dtRow[lstFields_ind["记录时间"]] == ""): continue trade.recordTime = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["记录时间"]]) trade.recorder = dtRow[lstFields_ind["记录人"]] trade.usrID = dtRow[lstFields_ind["用户名"]] trade.usrOrderType = dtRow[lstFields_ind["操作类型"]] trade.targetID = dtRow[lstFields_ind["标的代码"]] trade.targetName = dtRow[lstFields_ind["标的名称"]] trade.targetMarket = dtRow[lstFields_ind["标的所属市场"]] trade.targetMarketBoard = dtRow[lstFields_ind["标的所属市场板块"]] trade.targetIndustries = dtRow[lstFields_ind["标的所属行业"]].split("、") trade.targetConcepts = dtRow[lstFields_ind["标的所属概念"]].split("、") trade.targetPrice = float(dtRow[lstFields_ind["标的价格"]]) trade.targetPrice_Ex = float(dtRow[lstFields_ind["标的价格-期望"]]) trade.targetPosition = float(dtRow[lstFields_ind["标的仓位"]]) trade.infoID = int(dtRow[lstFields_ind["编号"]]) trade.tradeType = dtRow[lstFields_ind["交易类型"]] trade.tradeType_sub = dtRow[lstFields_ind["交易子类型"]] trade.tradeNum = float(dtRow[lstFields_ind["交易数量"]]) trade.tradeMoney = float(dtRow[lstFields_ind["交易金额"]]) trade.tradePosition = float(dtRow[lstFields_ind["交易量仓位占比"]]) trade.tradeProfit = float(dtRow[lstFields_ind["交易收益"]]) trade.tradeProfit_total = float(dtRow[lstFields_ind["交易收益-总计"]]) trade.tradeTime = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["交易时间"]]) trade.isDel = myData.iif(dtRow[lstFields_ind["是否删除"]] == "TRUE", True, False) trade.remark = dtRow[lstFields_ind["备注"]] self.usrDB[trade.infoID] = trade self.indLst.append(trade.infoID) # 顺序记录索引 self.dtDB = dtDB
def _Init(self): #提取字段信息 dtSetting = myIO_xlsx.DtTable() dtSetting.dataFieldType = ["","","","",""] dtSetting.Load_csv(self.Path_Stock, 1, 0, isUtf = True) if(len(dtSetting.dataMat) < 1 or len(dtSetting.dataField) < 1): return #转换为功能权限对象集 for dtRow in dtSetting.dataMat: if(len(dtRow) < len(self.setFields)): continue pSet = myStock_Info(dtRow[0], dtRow[1], dtRow[2], dtRow[3], dtRow[4], dtRow[5], dtRow[6], dtRow[7], dtRow[8], dtRow[9]) self._Index(pSet) #索引设置信息
def _Init(self): #提取字段信息 dtSetting = myIO_xlsx.DtTable() dtSetting.dataFieldType = ["","","","","bool","",""] dtSetting.Load_csv(self.Path_SetSpider, 1, 0, isUtf = True) if(len(dtSetting.dataMat) < 1 or len(dtSetting.dataField) < 1): return #转换为功能权限对象集 lstFields_ind = dtSetting.Get_Index_Fields(self.lstFields) for dtRow in dtSetting.dataMat: if(len(dtRow) < len(self.lstFields)): continue strSet = myData_Trans.Tran_ToStr(dtRow, ',') self._Init_BySet_str(strSet)
def _Init_DB(self, path): #提取字段信息 dtDB = myIO_xlsx.DtTable() dtDB.Load_csv(path, 1, 0, True, 0, ',', isUtf=True) lstFields = [ "编号", "账单类型", "交易方", "交易类型", "交易子类", "交易内容", "交易单价", "交易数量", "剩余数量", "交易金额", "手续费", "交易收益", "交易时间", "关联编号", "是否删除", "记录人", "记录时间", "备注" ] if (dtDB.sheet == None): dtDB.dataField = lstFields lstFields_ind = dtDB.Get_Index_Fields(lstFields) self.lstFields = lstFields self.pathData = path #装载账单记录 self.usrDB = {} self.indLst = [] for dtRow in dtDB.dataMat: bill = myObj_Bill() bill.usrID = self.usrID if (dtRow[lstFields_ind["记录时间"]] == ""): continue bill.recordTime = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["记录时间"]]) bill.recorder = dtRow[lstFields_ind["记录人"]] bill.usrBillType = dtRow[lstFields_ind["账单类型"]] bill.tradeID = int(dtRow[lstFields_ind["编号"]]) bill.tradeParty = dtRow[lstFields_ind["交易方"]] bill.tradeType = dtRow[lstFields_ind["交易类型"]] bill.tradeTypeTarget = dtRow[lstFields_ind["交易子类"]] bill.tradeTarget = dtRow[lstFields_ind["交易内容"]] bill.tradePrice = float(dtRow[lstFields_ind["交易单价"]]) bill.tradeNum = float(dtRow[lstFields_ind["交易数量"]]) bill.tradeNum_Stock = float(dtRow[lstFields_ind["剩余数量"]]) bill.tradeMoney = float(dtRow[lstFields_ind["交易金额"]]) bill.tradePoundage = float(dtRow[lstFields_ind["手续费"]]) bill.tradeProfit = float(dtRow[lstFields_ind["交易收益"]]) bill.tradeTime = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["交易时间"]]) bill.tradeID_Relation = dtRow[lstFields_ind["关联编号"]] if (bill.tradeID_Relation == "0"): bill.tradeID_Relation = "" bill.isDel = myData.iif(dtRow[lstFields_ind["是否删除"]] == "TRUE", True, False) bill.remark = dtRow[lstFields_ind["备注"]] self.usrDB[bill.tradeID] = bill self.indLst.append(bill.tradeID) # 顺序记录索引 self.dtDB = dtDB
def _Save(self): dtSetting = myIO_xlsx.DtTable() #监听设置信息表 dtSetting.dataName = "dataName" dtSetting.dataField = self.lstFields # 组装行数据 for key in self.setList: pSet = self.setList[key] if(pSet.isDeled): continue pValues = pSet.ToList() dtSetting.dataMat.append(pValues) # 保存 dtSetting.Save_csv(self.Dir_Setting, "Setting_Spider", True, 0, 0)
def loadData(self, strPath = ""): #提取分钟数据 if(strPath == ""): strPath = self.pathData pDt_csv = myIO_xlsx.DtTable() pDt_csv.dataFieldType = Quote_Data_Static().csvFiled_Type() pDt_csv.Load_csv(strPath, isUtf = True) for x in range(0, len(pDt_csv.dataMat)): pData_S = Quote_Data_Static() pData_S.fromValueList(pDt_csv.dataMat[x]) pDatas_S = Quote_Data_Statics_M(pData_S.dtTime, self.data, self.dataS_Min_Now, self.interval_M) pDatas_S.dataS = pData_S self.datasS_Min.append(pDatas_S) self.dataS_Min_Now = pDatas_S return True
def _Init(self): #提取字段信息 #dtGroup = myIO_xlsx.loadDataTable(self.Path_SetUser, 0, 1) #用户信息 dtGroup = myIO_xlsx.DtTable() dtGroup.Load_csv(self.Path_SetUser, 1, 0, isUtf=True) if (len(dtGroup.dataMat) < 1 or len(dtGroup.dataField) < 1): return lstFields_ind = dtGroup.Get_Index_Fields(self.lstFields) #转换为功能权限对象集 for dtRow in dtGroup.dataMat: pGroup = myRoot_GroupInfo("", dtRow[lstFields_ind["群组名"]]) pGroup.groupID = dtRow[lstFields_ind["ID"]] pGroup.typeName = dtRow[lstFields_ind["来源平台"]].split('、') pGroup.groupDesc = dtRow[lstFields_ind["描述"]] pGroup.groupTime_Regist = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["注册时间"]]) pGroup.groupTime_Logined_Last = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["最后登录时间"]]) self._Index(pGroup) #索引用户信息
def loadData(self, strDir = ""): #提取历史数据 strPath = self.dir + strDir + "History.csv" pDt_csv = myIO_xlsx.DtTable() pDt_csv.dataFieldType = Quote_Data_Static().csvFiled_Type() pDt_csv.Load_csv(strPath, isUtf = True) pDtNow = datetime.datetime.now() for x in range(0, len(pDt_csv.dataMat)): pData_S = Quote_Data_Static() pData_S.fromValueList(pDt_csv.dataMat[x]) self.datasS.append(pData_S) #初始当前(未初始,或六小时内数据,默认当天) if(len(self.datasS) < 1 or ((pDtNow - self.datasS[0].dtTime).total_seconds() / 3600 > 6)): pData_S = Quote_Data_Static() self.datasS.append(pData_S) #载入当天分钟数据集 self.datasS_M = self.newData_S(self.data) #只初始 self.datasS_M.pathData = self.dir + self.fileName + "_M.csv" self.datasS_M.loadData("") return True
def _Init(self): #dtSetting = myIO_xlsx.loadDataTable(self.Dir_Setting + "Setting.csv", 0, 1) #外部参数设置 #dtSetting_user = myIO_xlsx.loadDataTable(self.Dir_Setting + "Setting_User.csv", 0, 1) #外部参数设置-权限用户 dtSetting = myIO_xlsx.DtTable() dtSetting.dataFieldType = ["","","","","bool","bool","bool","bool","bool","",""] dtSetting.Load_csv(self.Dir_Setting + "Setting.csv", 1, 0, isUtf = True) dtSetting_user = myIO_xlsx.DtTable() dtSetting_user.dataFieldType = ["","bool","",""] dtSetting_user.Load_csv(self.Dir_Setting + "Setting_User.csv", 1, 0, isUtf = True) #提取字段信息 lstFields = ["功能名称","文件名","类名","启动命令","统一启用","是否启用","一对一有效","群有效","群同时有效","群列表","平台列表"] lstFields_ind = dtSetting.Get_Index_Fields(lstFields) #转换为功能权限对象集 if(self.hasGol): pGroups = gol._Get_Value('rootRobot_usrGroups_sys') #所有可用群集 for dtRow in dtSetting.dataMat: prjRoot = myRoot_Prj() prjRoot.prjName = dtRow[lstFields_ind["功能名称"]] prjRoot.fileName = dtRow[lstFields_ind["文件名"]] prjRoot.className = dtRow[lstFields_ind["类名"]] prjRoot.cmdStr = dtRow[lstFields_ind["启动命令"]] prjRoot.isEnable = myData.iif(dtRow[lstFields_ind["是否启用"]] == True, True, False) prjRoot.isEnable_All = myData.iif(dtRow[lstFields_ind["统一启用"]] == True, True, False) prjRoot.isEnable_one = myData.iif(dtRow[lstFields_ind["一对一有效"]] == True, True, False) prjRoot.isEnable_group = myData.iif(dtRow[lstFields_ind["群有效"]] == True, True, False) prjRoot.isEnable_groupAll = myData.iif(dtRow[lstFields_ind["群同时有效"]] == True, True, False) #平台集合 lstGroup = dtRow[lstFields_ind["群列表"]].split('、') if(self.hasGol): for x in lstGroup: pGroup = pGroups.Find_Group(x, x, "", True) prjRoot.usrGroups._Index(pGroup) prjRoot.PlatsEnable = dtRow[lstFields_ind["平台列表"]].split('、') #实例功能对象并缓存索引 prjRoot.creatIntance(self.usrID, self.usrName) self.prjRoots[prjRoot.prjName] = prjRoot self.prjCmds[prjRoot.cmdStr.lower()] = prjRoot.prjName #启动后台功能 if(prjRoot.isRunBack and prjRoot.isEnable): prjRoot.prjClass.Done("@@" + prjRoot.cmdStr, "") #自启动 #增加默认隐藏功能 if(True): prjRoot = myRoot_Prj() #_Init(self, prjName, fileName, className, cmdStr, isEnable, isEnable_All, isEnable_one, isEnable_group, isEnable_groupAll): prjRoot._Init("权限提升", "myRobot_Root", "myRobot_Root", "zxcRobot_Root", True, False, True, False, False) prjRoot.creatIntance(self.usrID, self.usrName) self.prjRoots[prjRoot.prjName] = prjRoot self.prjCmds[prjRoot.cmdStr.lower()] = prjRoot.prjName prjLog = myRoot_Prj() prjLog._Init("消息日志", "myRobot_Log", "myRobot_Log", "zxcRobot_Log", True, True, True, True, False) prjLog.creatIntance(self.usrID, self.usrName) prjLog.prjClass.Done("@@zxcRobot_Log", "") #自启动 self.prjRoots[prjLog.prjName] = prjLog self.prjCmds[prjLog.cmdStr.lower()] = prjLog.prjName #prjRevoke = myRoot_Prj() #prjRevoke._Init("通知消息", "myRobot_Note", "myRobot_Note", "zxcRobot_Note", True, False, True, True, False) #prjRevoke.creatIntance(self.usrID, self.usrName) #prjRevoke.prjClass.Done("@@zxcRobot_Note", "") #自启动 #self.prjRoots[prjRevoke.prjName] = prjRevoke #self.prjCmds[prjRevoke.cmdStr.lower()] = prjRevoke.prjName #prjMsg = myRoot_Prj() #prjMsg._Init("消息处理", "myRobot_Msg", "myRobot_Msg", "zxcRobot_Msg", True, True, True, True, False) #prjMsg.creatIntance(self.usrID, self.usrName) #prjMsg.prjClass.Done("@@zxcRobot_Msg", "") #自启动 #self.prjRoots[prjMsg.prjName] = prjMsg #self.prjCmds[prjMsg.cmdStr.lower()] = prjMsg.prjName #prjStockAppetite = myRoot_Prj() #prjStockAppetite._Init("股票偏好", "myRobot_StockAppetite", "myRobot_StockAppetite", "zxcRobot_StockAppetite", True, False, False, True, False) #prjStockAppetite.creatIntance(self.usrID, self.usrName) #prjStockAppetite.prjClass.Done("@@zxcRobot_StockAppetite", "") #自启动 #self.prjRoots[prjStockAppetite.prjName] = prjStockAppetite #self.prjCmds[prjStockAppetite.cmdStr.lower()] = prjStockAppetite.prjName #用户权限设置 if(True): #提取字段信息 lstFields_user = ["用户名","功能权限","功能列表","关联人列表"] lstFields_ind_user = dtSetting_user.Get_Index_Fields(lstFields_user) #转换为功能权限对象集 if(self.hasGol): pUsers = gol._Get_Value('rootRobot_usrInfos', None) #权限信息 for dtRow in dtSetting_user.dataMat: #提取用户对象 #prjRoot_user = myRoot_Usr.myRoot_Usr("", usrName, usrName, "", self) usrName = dtRow[lstFields_ind_user["用户名"]] pUser = pUsers._Find(usrName, usrName, usrName, "", "", True) #添加系统级权限用户 bRoot = myData.iif(dtRow[lstFields_ind_user["功能权限"]] == True, True, False) lstPrj = dtRow[lstFields_ind_user["功能列表"]] if(lstPrj.count('、') > 0): lstPrj = lstPrj.split('、') if(bRoot): if(len(lstPrj) < 1): #所有有效 for x in self.prjRoots.keys(): self.prjRoots[x].rootUsers._Add(pUser) else: for x in self.prjRoots.keys(): if(self.prjRoots[x].prjName in lstPrj): self.prjRoots[x].rootUsers._Add(pUser) #用户关联权限用户姓名集 lstUsr = dtRow[lstFields_ind_user["关联人列表"]].strip().split('、') pUser.usrRelations = pUser.usrRelations + lstUsr
马萨CRM电话接通率去重 """ import sys, os, time import mySystem #引用根目录类文件夹--必须,否则非本地目录起动时无法找到自定义类 sysDir = mySystem.Append_Us("") sysDir = mySystem.Append_Dir("myFunction") import myIO, myIO_xlsx #主启动程序 if __name__ == "__main__": # 载入表格数据 #['客户: Group&Dealer Name', '客户: ID', '客户: 潜在客户状态', '客户: 客户所有人', '客户: 创建日期', '客户: 本季度云电话拨打是否符合考核要求', '客户: 本季度云电话是否成功拨打', '是否DCC拨打', '云电话拨打记录:拨打记录编号', '客户: 客户名', '客户: 客户 ID', '客户: 最近展厅来访日期', '拨打时间', '客户: 手机', ...] pTable = myIO_xlsx.DtTable() #pTable.dataFieldType= ['', "", "", "", "int", "", "", "", "", "", "", "int"] pTable.Load( "D:\\myCode\\zxcProj\\src\\Zxc.Python\\zxcPy.gsLog_Submits\\mySetting\\DCC.xlsx" ) indFields = pTable.Get_Index_Fields(pTable.dataField) # 循环剔除重复 dictDCC = {} lstRows = [] rows = pTable._Rows() for i in range(0, rows): # 忽略已处理用户 row = pTable[i] usrID = row[indFields['客户: ID']] if (dictDCC.get(usrID, None) != None):
def transData(dataType): dir = "D:\\myDevEvn\\UCMLCoreYunUMS7.6.1.8\\Standard\\Html\\BPObject\\sln_12002\\BusinessUnit\\我的测试\\data\\" pTable = myIO_xlsx.DtTable() pTable.Load_csv(dir + "dcjd_2020_08_20_pm.csv") indFields = pTable.Get_Index_Fields(pTable.dataField) ind_data = indFields[dataType] ind_name = indFields['"时间"'] ind_lng = indFields['"经度"'] ind_lat = indFields['"纬度"'] # 循环提取数据 maxValue = -999999 lstRows = [] rows = pTable._Rows() for i in range(0, rows): row = pTable[i] value = myData_Trans.To_Float(row[ind_data].replace('"', '')) if (value > maxValue): maxValue = value name = row[ind_name].replace('"', '') name = "" lng = myData_Trans.To_Float(row[ind_lng].replace('"', '')) lat = myData_Trans.To_Float(row[ind_lat].replace('"', '')) jsonInfo = {"name": name, "value": [lng, lat, value]} lstRows.append(jsonInfo) # 插值加密 dataAdds = [] deltaDic = 1.0 / 111000 * 5 for i in range(0, rows - 1): value0 = lstRows[i]['value'] value1 = lstRows[i + 1]['value'] name = lstRows[i]['name'] _deltaDic, linePoints = myData_Geometry.breakLine( value0[0], value0[1], value1[0], value1[1], deltaDic) if (len(linePoints) > 0): #计算插值 dicT = myData_Geometry.distance(value0[0], value0[1], value1[0], value1[1]) valueT = (value1[2] - value0[2]) / 2 x0 = value0[0] y0 = value0[1] numPoint = len(linePoints) for x in range(0, numPoint, 2): x1 = linePoints[x] y1 = linePoints[x + 1] dicTemp = myData_Geometry.distance(x0, y0, x1, y1) valueTemp = value0[2] + valueT * (dicTemp / dicT) jsonInfo = {"name": name, "value": [x1, y1, valueTemp]} dataAdds.append({"index": i, "jsonInfo": jsonInfo}) # 添加插值 for i in range(len(dataAdds) - 1, -1, -1): dataAdd = dataAdds[i] jsonInfo = dataAdd["jsonInfo"] ind = dataAdd["index"] lstRows.insert(ind, jsonInfo) dataInfo = [lstRows, maxValue] strData = str(dataInfo).replace("'", '"') path = dir + dataType.replace('"', '') + ".json" myIO.Save_File(path, strData, True, False) pass
def _Init_TradeDB(self, path): #提取字段信息 dtDB = myIO_xlsx.DtTable() dtDB.Load_csv(path, 5, 0, True, 4, ',', isUtf=False) lstFields = [ "交收日期", "合同号", "资金账号", "股东代码", "证券代码", "证券名称", "交易类别", "成交价格", "成交数量", "证券余额", "成交金额", "资金发生数", "资金余额", "费用合计", "净佣金", "规费", "印花税", "过户费", "经手费", "清算费", "前台费用", "交易规费", "证管费", "币种", "交易市场" ] if (dtDB.sheet == None): dtDB.dataField = lstFields lstFields_ind = dtDB.Get_Index_Fields(lstFields) #提取交易记录 pBills = self.billManager._Find("Stock_" + self.usrID, True) #装载账单记录 nInd = 0 for nTimes in range(0, 1): for dtRow in dtDB.dataMat: #解析有效数据内容 bill = myManager_Bill.myObj_Bill() bill.usrID = self.usrID bill.recorder = self.usrID bill.tradeParty = dtRow[lstFields_ind["交易市场"]] bill.tradeType = "投资" bill.tradeTypeTarget = "股票" bill.tradeTarget = dtRow[lstFields_ind["证券名称"]] bill.tradePrice = float(dtRow[lstFields_ind["成交价格"]]) bill.tradeNum = int(dtRow[lstFields_ind["成交数量"]]) bill.tradeMoney = float(dtRow[lstFields_ind["成交金额"]]) bill.tradePoundage = float(dtRow[lstFields_ind["费用合计"]]) bill.tradeTime = myData_Trans.Tran_ToDatetime( dtRow[lstFields_ind["交收日期"]], "%Y%m%d") + datetime.timedelta(seconds=nInd * 10) nInd = nInd + 1 #区分类型,部分类型屏蔽 strType = dtRow[lstFields_ind["交易类别"]] if (strType.count('买入') == 1 or strType.count('配售缴款')): bill.usrBillType = '买入' elif (strType.count('配股入帐') == 1): bill.usrBillType = '买入' bill.tradePrice = bill.tradeMoney / bill.tradeNum bill.tradePoundage = 0 elif (strType.count('卖出') == 1): bill.usrBillType = '卖出' elif (strType.count('银行转证券') == 1): bill.usrBillType = '转账' bill.tradeTypeTarget = "转入" bill.tradeTarget = "现金" bill.tradeParty = "券商" bill.tradeMoney = float(dtRow[lstFields_ind["资金发生数"]]) elif (strType.count('证券转银行') == 1): bill.usrBillType = '转账' bill.tradeTypeTarget = "转出" bill.tradeTarget = "现金" bill.tradeParty = "券商" bill.tradeMoney = abs(float(dtRow[lstFields_ind["资金发生数"]])) elif (strType.count('融券回购') == 1): bill.usrBillType = '买入' bill.tradeTypeTarget = "国债逆回购" elif (strType.count('融券购回') == 1): bill.usrBillType = '卖出' bill.tradeTypeTarget = "国债逆回购" bill.tradeMoney = float(dtRow[lstFields_ind["资金发生数"]]) elif (strType.count('利息归本') == 1 or strType.count('利息税代扣') == 1): bill.usrBillType = '分红' bill.tradeTypeTarget = "活期" bill.tradeTarget = "利息" bill.tradeParty = "券商" bill.tradeMoney = float(dtRow[lstFields_ind["资金发生数"]]) elif (strType.count('红利入账') == 1): bill.usrBillType = '分红' if (bill.tradeNum != 0): pass #价格变动。。 bill.tradeMoney = float(dtRow[lstFields_ind["资金发生数"]]) else: continue #部分特殊类型名称转换 if (bill.usrBillType == "卖出"): if (bill.tradeTarget.count("转债") == 1): bill.tradeTarget = bill.tradeTarget.replace("转债", "发债") if (bill.tradeTarget.count("发债") == 1): bill.tradeTypeTarget = "可转债" if (bill.tradeTarget.count("发债") == 1): bill.tradeTypeTarget = "可转债" #@@Test if (bill.usrBillType == "卖出" and bill.tradeTarget.count("五粮") == 1): aa = 1 #添加账单信息 strReturn = pBills._Add(bill) myDebug.Print(strReturn)
print('\n') if __name__ == '__main__': filename = "data/应急救援.docx" #pDocx = myDcox(filename) pDocx = myDcox() pDocx.loadDocx(filename, True) # 提取测试 # 导出节点为excel paras = pDocx.getParas_All(None, True) if (len(paras) > 0): import myIO_xlsx pExcel = myIO_xlsx.DtTable() pExcel.dataName = "应急救援" for x in range(pDocx.paraDepth_min, pDocx.paraDepth_max + 1): pExcel.dataField.append("段落 " + str(x) + " 级") pExcel.dataField.append("备注") styleSets = [] nDelta = pDocx.paraDepth_min nCols = pExcel._Cloumns() ind = 1 # 第一行不算 nRows = 0 for x in range(0, len(paras)): #循环跳过, if (nRows > 0): nRows -= 1 continue