Пример #1
0
def replace(data):
    '''
    方案:利用search找到第一个就返回的特点, 我们使用找到一个就替换一个的策略
    第一个已经换完 ,继续循环找,的下一个,以此类推,找到就返回 group(1) 换,没找到返回None
    '''
    pattern = '#(.*?)#'
    while re.search(pattern, data):  # 返回 None  就是 Flase,不会继续循环了

        res = re.search(pattern, data)  ###打印分组 group(1) ,  0 或 不传 返回所有

        g1 = res.group(1)  # 获取到参数化的key

        #首先去找配置文件 ,没有再找类属性
        try:
            value = config.get_str('datas', g1)  #根据#key 配置文件里取
        except configparser.NoOptionError as e:
            logger.error('配置文件{}没有{}'.format('datas', g1))

            # 如果配置文件里面没有的时候,去Context里面取
            if hasattr(Context, g1):  #查看类 是否存在 属性g1   ,有就取
                value = getattr(Context, g1)
            else:  #没有就打印 消息
                logger.error('contants类 属性 也找不到参数化的值')
                raise e

        logger.info('参数化的值{}:{}'.format(g1, value))

        # 按 模式 匹配 sub查找并替换 会找到两个 所有要指定count= 1
        new_data = re.sub(pattern, repl=value, string=data, count=1)

        # 循环 继续判断 datas
        data = new_data

    return data
Пример #2
0
    def __init__(self):
        #下面MyDB数据库配置信息 都在配置文件里取
        host = config.get_str('db', 'host')
        user = config.get_str('db', 'user')
        password = config.get_str('db', 'password')
        port = config.get_int('db', 'port')
        #1 创建连接
        self.mydb = pymysql.connect(host=host,
                                    user=user,
                                    password=password,
                                    port=port,
                                    charset='utf8')

        #2 创建 打开游标窗口(比喻成打开一个查询窗口)
        self.cursor = self.mydb.cursor(
            pymysql.cursors.DictCursor)  ###pymysql.cursors.DictCursor
Пример #3
0
    def client(self, method, url, data):
        url = config.get_str(
            'api', 'wsdl') + url  #拼接url    read_config 已经选好环境切换  自动适配
        if type(data) == str:
            data = eval(data)

        client = Client(url)
        cln_str = 'client.service.' + method + '(datas)'  #利用字符串拼接
        try:
            result = eval(cln_str)  #利用eval函数特点 执行
            res = result.retInfo
            print(result)
            print(res)
        except suds.WebFault as e:
            print(e)
            print(e.fault['faultstring'])
Пример #4
0
    def request(self, method, url, data=None, json=None):
        method = method.upper()

        url = config.get_str('api', 'url') + url  # 拼接url

        if type(data) == str:
            data = eval(data)

        if method == 'GET':
            resp = self.session.request(method=method, url=url, params=data)
        elif method == 'POST':
            if json:
                resp = self.session.request(method=method, url=url, json=json)
            else:
                resp = self.session.request(method=method, url=url, data=data)

        else:
            return None
        return resp
Пример #5
0
    def request(self, method, url, data=None, json=None, cookies=None):
        method = method.upper()

        url = config.get_str('api',
                             'url') + url  #拼接url    read_config 已经选好环境切换  自动适配

        if type(data) == str:
            data = eval(data)
        if method == 'GET':
            resp = requests.get(url, params=data, cookies=cookies)
        elif method == 'POST':
            if json:
                resp = requests.post(url, json=json, cookies=cookies)
            else:
                resp = requests.post(url, data=data, cookies=cookies)

        else:
            return None

        return resp
Пример #6
0
                     '"repaymemtWay":"234241","biddingDays":"234241"}'

data = '{"mobilephone":"#normal_user#","pwd":"#normal_pwd#"}'
###找到一个整体 match = '#normal_user#","pwd":"#normal_pwd#'>
# res= re.search('#.*#',datas)# 从任意位置开始找,找到第一个就返回,*后 默认是尽可能多的匹配,简称贪婪匹配
# print(res)
# res= re.search('#.*?#',datas) # *? 最多只匹配 0 到 1 次 。search 就是找到第一个就返回
# print(res)

# res= re.findall('#(.*?)#',datas)#查找全部 返回放进一个列表里
# print(res)
'''
方案:利用search找到第一个就返回的特点, 我们使用找到一个就替换一个的策略
第一个已经换完 ,继续循环找,的下一个,以此类推,找到就返回 group(1) 换,没找到返回None

'''
pattern = '#(.*?)#'
while re.search(pattern, data):  # 返回 None  就是 Flase,不会继续循环了

    res = re.search(pattern, data)  ###打印分组 group(1) ,  0 或 不传 返回所有
    print(res.group(0))  # 返回 所有
    print(res.group(1))  #取 第一个组
    g1 = res.group(1)  # 获取到参数化的key

    value = config.get_str('datas', g1)  #根据key 取
    print(value)  # 按照匹配出来的变量名,去配置文件里取值
    #按 模式 匹配 sub查找并替换 会找到两个 所有要指定count= 1
    new_ata = re.sub(pattern, repl=value, string=data, count=1)
    data = new_ata
print(data)