一种基于Python的自定义日志解析的实践方法

news2024/11/24 5:41:27

需求说明:

从如下的日志文件里解析出如下字段:

参数名:教育程度

左值:60

右值:90

表达式:等于

结果:不满足

解决方法:

Step1: 因为原始日志来源于网页,这里真正的日志实际是html文件,需要通过BeautifulSoup对文件进行解析。

Step2:解析时遍历每行数据,对含有“[条件日志]”的处理见下:

按照“【”、“】”、“左值”、“右值”提取关键信息,其中对特殊符号可采取正则表达式统一替换。

Step3:对含有“变量赋值日志”'的仅提前出 左值、右值。

import re
r = "[,。,【】]"
#sentence = re.sub(r, ' ', sentence)

def cleanData(str):
    #str="[条件日志]:^^^条件:[变量]参数.非广西手机号码归属地_调用状态【小于等于】[字符]300 =>满足, 左值:【200】, 右值:【300】。"
    if ('[条件日志]' in str):
        #print("表达式:\t",str.split('左值:')[0])
        expStr=str.split('左值:')[0].replace('[条件日志]:^^^条件:[变量]参数.','')
        para=expStr.split('【')[0]
        exp= expStr.split('【')[-1].split('】')[0]
        leftVal=str.split('左值:')[-1].split('右值:')[0]
        leftVal =re.sub(r, '', leftVal)
        rightVal = str.split('右值:')[-1].split('右值:')[0]
        rightVal = re.sub(r,'',rightVal)
        result = expStr.split("=>")[-1].replace(',','')
        print(para,leftVal,exp,rightVal,result)
    elif('变量赋值日志' in str):
        expStr = str.replace('[变量赋值日志]:###变量赋值:参数.', '')
        leftVal = expStr.split('=')[0]
        rightVal = expStr.split('=')[-1]
        print("\t",leftVal, rightVal)
    elif('进入决策节点' in str):
        print(str.replace('[RuleFlow]:>>>进入决策节点, ',''))


from bs4 import BeautifulSoup

#1将字符串中,字母i单独出现的地方将i变为I
s='i am is wang i love I love you i!'
patter=re.compile(r'^.*日志:') #[RuleFlow.*$]

with open("D:/log.html", "r", encoding='utf-8') as f:
    html = f.read()
    soup = BeautifulSoup(html, 'html.parser')
    table = soup.find('table')
    rows = table.find_all('tr')
    for row in rows:
        cells = row.find_all('td')
        for cell in cells:
            cleanData(re.sub(patter, '', cell.text))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/970662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端加密方式

前端加密 1.不可逆加密2.可逆加密a.对称加密b.非对称加密(本文重点)a.含义:b.过程理解:c.项目中使用: 总结:参考地址 目前搜索前端加密是可以看到有非常非常多的方法的,这里我们需要对其分类总结…

设计模式-9--迭代器模式(Iterator Pattern)

一、什么是迭代器模式 迭代器模式(Iterator Pattern)是一种行为型设计模式,用于提供一种统一的方式来访问一个聚合对象中的各个元素,而不需要暴露该聚合对象的内部结构。迭代器模式将遍历集合的责任从集合对象中分离出来&#xf…

睿思BI实现杜邦分析

杜邦分析法(DuPont analysis)是一种分析企业财务状况的方法,得名于美国杜邦公司。该方法可以应用于销售业绩分析。 睿思BI实现杜邦分析效果如下: 效果演示地址:https://www.ruisitech.com/rsbi-ultimate/#/dashboard/…

Hook技术

Hook 英文直译是“钩子”的意思,在程序中将其理解为“劫持”更好理解,意思是,通过 Hook 技术来劫持某个对象,从而控制它与其它对象的交互。 Hook 技术是一种用于改变 API 执行结果的技术,Android 系统中有一套自己的事…

架构设计基础设施保障IaaS存储

目录 1. 云硬盘2. 对象存储3. 表单上传案例4. 服务上传验证5. 云数据库6. 云数据库操作7. 服务连接云数据库8. 新一代原生数据库9 阿里云PolarDB生产最佳实践 1. 云硬盘 HDD(普通云盘) 特征: 性能一般, IOPS大概在数百左右。 应…

iPhone 15 Pro展示设计:7项全新变化呈现

我们不应该再等iPhone 15 Pro在苹果9月12日的“Wonderlust”活动上发布了,而且可能会有很多升级。有传言称,iPhone 15 Pro将是自iPhone X以来最大的飞跃,这要归功于大量的新变化,从带有更薄边框的新钛框架到顶级A17仿生芯片和动作…

通过Siri打造智能爬虫助手:捕获与解析结构化数据

在信息时代,我们经常需要从互联网上获取大量的结构化数据。然而,传统的网络爬虫往往需要编写复杂代码和规则来实现数据采集和解析。如今,在苹果公司提供的语音助手Siri中有一个强大功能可以帮助我们轻松完成这项任务——通过使用自定义指令、…

micro python 编译流程和方法,以及一部分问题解决

micro python官网 https://micropython.org/ 点击 点击对应的芯片,我这里是ESP32-S3 点击到git 到esp32目录下 按照指引下载安装ESP-IDF IDF版本查看连接如下: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html 我这里选择…

Kubernetes入门 十三、配置管理

目录 VolumeConfigMap概述创建ConfigMap使用ConfigMap用作环境变量用作命令行参数使用 volume 挂载 不可变 ConfigMap Secret概述Secret 的种类创建Secretkubectl创建yaml文件创建 使用Secret使用 Volume 挂载用作环境变量挂载指定的 key 使用kubernetes.io/dockerconfigjson类…

【Vue】 Vue3 安装说明,适合小白新手

1、独立版本 我们可以在 Vue.js 的官网上直接下载最新版本, 并用 下载 Vue.js https://unpkg.com/vuenext 2、使用 CDN 方法 以下推荐国外比较稳定的两个 CDN,国内还没发现哪一家比较好,目前还是建议下载到本地。 Staticfile CDN(国内&am…

Unity资源无法下载 反复提示需同意Terms of Service和EULA 同意后无效的解决方案

前言 最近在玩Unity,跟着tutorial做点项目,但是在下载免费资源时,只有从网站上点“打开Unity”,才能在本地Unity Editor的Package Manager里找到这个资源(且点一下下面的刷新就没有了),并且点击…

【MySQL】MySQL 慢SQL如何避险

我们在日常开发中,一定遇见过某些SQL执行较慢的情况,我们俗称“慢SQL”,如果你对系统的接口性能要求较高的话,一定不会放过这种SQL,肯定会想办法进行解决,那么,导致慢 SQL 出现的原因&#xff0…

寻找重复数

题目链接 寻找重复数 题目描述 注意点 nums 中 只有一个整数 出现 两次或多次 ,其余整数均只出现 一次不修改 数组 nums 且只用常量级 O(1) 的额外空间 解答思路 参照题解可以将本题的数组抽象为链表,由于nums中只有一个整数出现多次,所…

Python操作Excel教程(图文教程,超详细)Python xlwings模块详解,

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 xlwings模块详解 1、快速入门1、打开Excel2、创建工作簿2.1、使用工作簿2.2、操作…

9.(Python数模)(分类模型一)K-means聚类

Python实现K-means聚类 K-means原理 K-means均值聚类算法作为最经典也是最基础的无标签分类学习算法。其实质就是根据两个数据点的距离去判断他们是否属于一类,对于一群点,就是类似用几个圆去框定这些点(簇),然后圆心…

7英寸触摸显示屏企业网络电话

SV-X77英寸触摸显示屏企业网络电话 SV-X7网络电话是一款带有7英寸触摸显示屏的高端式企业级电话,以先进设计及强大的功能大幅度提高企业工作效率。 功能亮点 √ 虚拟可编程按键 — 可动态显示4个分页,每页可设置显示29个DSS键的状态,最多支持…

线 竖线 横线 系谱图 before 伪类

ul.xipt.level-1 li:before {position: absolute;width: 1px;border-right: dashed 1px #a52520;left: 50%;bottom: -40px;content: "";height: 84px; }

患者随访模板移动端设计

医院随访模板是一款集患者资料整理、随访计划执行和数据统计分析功能于一体的医患服务系统。旨在帮助医院规范随访工作、提高随访效率、提升医疗水平、提高患者依从度。 一、模板临床作用及意义 1、减轻随访工作人员劳动强度、提升随访工作效率。帮助医生或者医院从繁重无序的…

【机器学习】人工智能概述(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

权限框架之jcasbin讲解

文章目录 1 jcasbin1.1 前言1.2 工作原理1.2.1 PERM模型1.2.2 Model语法1.2.2.1 Request定义1.2.2.2 Policy定义1.2.2.3 Policy effect定义1.2.2.4 角色定义1.2.2.5 匹配器1.2.2.6 完整model.conf 1.2.3 policy.csv 1.3 准备1.3.1 mavan依赖1.3.2 配置文件1.2.3 读取权限信息进…