如何在Python中提取文本文件内重复的RequestId键及其对应值?
提取文本中的RequestId方法
嘿,这有两种实用的Python方法帮你提取并打印文本里的RequestId:
方法一:字符串分割遍历
这种方法适合结构比较规整的文本,思路就是把文本拆成一个个片段,然后筛选出带RequestId的项:
# 定义你的文本内容 log_text = "RequestId=159dd0dc-3ac2-11e7-9f57-b7548c7a91e2 global-action-trace=15a01af3-3ac2-11e7-babe-0a5b00b90000 EOE RequestId=12780045-3ac2-11e7-8dc6-f7c2b766d8e7 global-action-trace=1278c342-3ac2-11e7-babe-0a5b00b90000 EOE" # 按空格拆分文本成单个键值对片段 items = log_text.split() # 遍历每个片段,提取RequestId for item in items: if item.startswith("RequestId="): # 拆分键和值,取后面的部分 request_id = item.split("=")[1] print(f"RequestId: {request_id}")
运行这段代码会输出:
RequestId: 159dd0dc-3ac2-11e7-9f57-b7548c7a91e2
RequestId: 12780045-3ac2-11e7-8dc6-f7c2b766d8e7
方法二:正则表达式(更灵活)
如果文本结构可能有变化,用正则表达式匹配UUID格式的RequestId会更靠谱,能精准定位:
import re log_text = "RequestId=159dd0dc-3ac2-11e7-9f57-b7548c7a91e2 global-action-trace=15a01af3-3ac2-11e7-babe-0a5b00b90000 EOE RequestId=12780045-3ac2-11e7-8dc6-f7c2b766d8e7 global-action-trace=1278c342-3ac2-11e7-babe-0a5b00b90000 EOE" # 匹配RequestId=后面的UUID(8-4-4-4-12格式的字符串) pattern = r"RequestId=([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})" request_ids = re.findall(pattern, log_text) # 打印所有提取到的RequestId for rid in request_ids: print(f"RequestId: {rid}")
这个方法的好处是,哪怕RequestId前后有其他特殊字符,只要格式符合UUID,都能准确提取出来,输出结果和上面一致。
内容的提问来源于stack exchange,提问作者Aziz
相关产品推荐
相关产品推荐

