码迷,mamicode.com
首页 > 其他好文 > 详细

记一次简单的正则表达式匹配实践

时间:2019-11-28 18:51:55      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:family   脚本   sub()   保留   日志   工作   coding   end   需要   

背景:

由于需要对大促期间的曝光日志进行降级,需要验证保留下来的70多个pageid的页面是否生效。

如果使用常规手段,如果想要全量验证,需要使用kafka收发数据的脚本跑70+遍,想想就是一件很繁重很蠢的工作。

这个时候想到使用python进行辅助验证,即可以进行全量校验,又能节省时间。

思路:

1.将所有的pageid值放入文本文件,配合open()和readline()读取page_id,以数组的形式保存;

2.使用正则表达式函数re.search()定位到源数据中key为"page_id",并取其value值;

3.使用re.sub()将page_id数组中的值,替换掉源数据中"page_id"的value值,这里使用到for循环

4.在每个for循环中将替换之后的数据逐一发送到kafka,这里使用的是kafka模块中的KafkaProducer方法。

OK,思路清楚之后开始代码的实现。

下面贴出主要的实现代码f = open(page_id.txt, r, encoding=UTF-8)lines = f.readlines()l_length = len(lines)

data = []

#这里创建kafka发送函数
def product(data): producer.send(ssa_sdk_exposure_log, data.encode(utf-8)) producer.flush()
#使用for循环替换并发送数据
for i in range(0,len(lines)-1): lines[i] = lines[i].strip(\n)             #这里是为了去除读取文件中的page_id时,产生的\n target1 = re.search("pageid":"(.*?)",testdata1) #正则表达式匹配到pageid的一段字符串 target = target1.group(1) testdata1 = re.sub(target,lines[i],testdata1) print(testdata1) product(testdata1)
未完待续
"pageid":"(.*?)"

记一次简单的正则表达式匹配实践

标签:family   脚本   sub()   保留   日志   工作   coding   end   需要   

原文地址:https://www.cnblogs.com/jockeyhao/p/11806039.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!