Python webservice

来源:互联网 发布:scanner java 编辑:程序博客网 时间:2024/05/17 06:13
import pandasimport xlwtfrom suds.client import Clientimport loggingimport timedef getAirportCDsBychnName(airport_chn_name):    api_url = 'http://.....MasterDataService?wsdl'  # 这里是你的webservice访问地址    client = Client(api_url)    params_dict = {"usrID": "MDMMASTERDATA" ,                   "usrPwd": "MDM_CEAIR1_P2WD!" ,                   "AIRPORT_CHN_NAME": airport_chn_name}    result = client.service.queryMasterData(params_dict)    AIRPORT_CDs =[]    if len(result) != 0:        s = str(result)        c = s.count("AIRPORT_CD")        for i in range(c):            l = s.find("AIRPORT_CD")            s = s[l:]            l = s.find(" = ")            s = s[l+3:]            r = s.find("\n")            AIRPORT_CDs.append(str(s[:r]).replace("\"" , ""))        logging.info(airport_chn_name)        logging.info(AIRPORT_CDs)    return  AIRPORT_CDsif __name__ == '__main__':    FORMAT = time.strftime("[%Y-%m-%d %H:%M:%S]", time.localtime()) + "[gaosan1031]-----%(message)s------"    logging.basicConfig(level=logging.INFO, format=FORMAT)    city_hash = {}    air_code = pandas.DataFrame(pandas.read_excel("C:/Users/liyang/Desktop/gaosan/airport_code.xlsx", sheetname=0)[:])    x = air_code.values    for r in x:        if pandas.notnull(r[2]) :            k = str(r[2]).replace(" " , "")            v = str(r[0]).replace(" " , "") ;            city_hash[k] = str(v)    hangxian = pandas.DataFrame(pandas.read_excel("C:/Users/liyang/Desktop/x.xlsx", sheetname=0)[:])    x = hangxian.values    gaosan = xlwt.Workbook()    sheet1 = gaosan.add_sheet('sheet1', cell_overwrite_ok=True)    sheet1.write(0, 0, "起始日期")    sheet1.write(0, 1, "终止日期")    sheet1.write(0, 2, "班期")    sheet1.write(0, 3, "航段")    sheet1.write(0, 4, "承运方航班号")    sheet1.write(0, 5, "市场方航班号")    sheet1.write(0, 6, "原始航段")    for i in range(len(x)):        r = x[i]        ft = str(r[3]).replace(" " , "").replace("—" , "-").replace("-" , "-").split("-")        tu = ""        for k in range(len(ft)) :           v = None           if city_hash.get(ft[k]):               v = city_hash.get(ft[k])           if v == None:               cds = getAirportCDsBychnName(ft[k])               if len(cds) == 0:                   logging.info(ft[k])                   logging.info("一个也找不到!")               elif len(cds) == 1:                   v = cds[0]               if v == None:                   v = "NONE"           if k != 0 :               tu = tu + "-" + v           else:               tu = tu + v        print(ft , end="******")        print(tu)        sheet1.write(1+i , 0 , r[0])        sheet1.write(1 + i, 1, r[1])        sheet1.write(1 + i, 2, r[2])        sheet1.write(1 + i, 3, tu)        sheet1.write(1 + i, 4, r[4])        sheet1.write(1 + i, 5, r[5])        sheet1.write(1 + i, 6, r[3])    gaosan.save("C:/Users/liyang/Desktop/gaosan/re2.xls")


import pandasimport xlwtfrom suds.client import Clientimport loggingimport timehash_names = {}def getlinesByNbr(CARRIER_CD , FLT_NBR):    api_url = 'http://.....PlanService?wsdl'    client = Client(api_url)    params_dict = {         "usrID": "MDMPLAN" ,         "usrPwd": "MDM_CEAIR1_P2WD!" ,         "queryDetailInformation" :             [ {                 "CARRIER_CD" : CARRIER_CD ,                 "FLT_NBR": FLT_NBR               }            ]         }    result = client.service.queryPlan(params_dict)    lines =[]    if len(result) != 0:        s = str(result)        c = s.count("LINE_SERIAL")        for i in range(c):            l = s.find("LINE_SERIAL")            s = s[l:]            l = s.find(" = ")            s = s[l+3:]            r = s.find("\n")            lines.append(str(s[:r]).replace("\"" , ""))    return linesdef replacePorts(ports , air_nbr , chn_names) :    ports = str(ports).replace(" " , "").replace("—" , "-").replace("-" , "-")    chn_names = str(chn_names).replace(" " , "").replace("—" , "-").replace("-" , "-")    if ports.count("NONE") == 0 :        return ports    else:        ps = getlinesByNbr(air_nbr[0:2], air_nbr[2:])        p = ports.split("-")        names = chn_names.split("-")        for i in range(len(names)):            if hash_names.get(names[i]):                p[i] = hash_names.get(names[i])        noneCnt = 0        for r in p:            if r == "NONE":                noneCnt += 1        if noneCnt == 0:            prts = p[0]            for i in range(1 , len(p)):                prts = prts + "-" + p[i]            print(prts)            return prts        for row in ps:            r = str(row).replace(" " , "").replace("—" , "-").replace("-" , "-").split("-")            if len(r) != len(p):                continue            sameCnt = 0            for i in range(len(p)):                if (p[i] == r[i]) and (p[i] != "NONE"):                    sameCnt += 1            if sameCnt == len(p) - noneCnt:                for k in range(len(p)):                    if p[k] == "NONE":                        hash_names[names[k]] = r[k]                        print(hash_names)                return row    return portsif __name__ == '__main__':    FORMAT = time.strftime("[%Y-%m-%d %H:%M:%S]", time.localtime()) + "[gaosan1031]-----%(message)s------"    logging.basicConfig(level=logging.INFO, format=FORMAT)    hangxian = pandas.DataFrame(pandas.read_excel("C:/Users/liyang/Desktop/re2.xls", sheetname=0)[:])    x = hangxian.values    gaosan = xlwt.Workbook()    sheet1 = gaosan.add_sheet('sheet1', cell_overwrite_ok=True)    sheet1.write(0, 0, "起始日期")    sheet1.write(0, 1, "终止日期")    sheet1.write(0, 2, "班期")    sheet1.write(0, 3, "航段")    sheet1.write(0, 4, "承运方航班号")    sheet1.write(0, 5, "市场方航班号")    sheet1.write(0, 6, "原始航段")    for i in range(len(x)):        r = x[i]        ports = replacePorts(r[3] , r[4] , r[6])        logging.info(r[4] + ":" + r[3] + "->" + ports)        sheet1.write(1+i , 0 , r[0])        sheet1.write(1 + i, 1, r[1])        sheet1.write(1 + i, 2, r[2])        sheet1.write(1 + i, 3, ports)        sheet1.write(1 + i, 4, r[4])        sheet1.write(1 + i, 5, r[5])        sheet1.write(1 + i, 6, r[6])    gaosan.save("C:/Users/liyang/Desktop/gaosan/re3.xls")



原创粉丝点击