当前位置: 首页 > news >正文

使用python提取日志里面的role_id、vip字段的值,(vip字段可能为空或者缺失,此时需要给默认值0):

日志样例:

1068 1529597015396 g60-database-380.i.nease.net /home/g60/gamedata/log/g60_GameStatistic_20180622.log  380_game02 G60_GameStatistic 1529596878_35 [2018-06-22 00:01:18][MercLevelUp],{"merc_capacity":2739,"cur_level":70,"accountid":"aebfr2ualeolqplc@ad.netease.win.163.com","type_id":307,"udid":"66e0b0278fbef358","ip":"101.90.127.224","role_sex":1,"app_channel":"netease","server":"380","role_occ":4,"role_id":"698382","vip":6,"pre_level":69,"guid":6882678726665895936,"role_level":80}

import jsondef parse_log_line(line):try:# 查找JSON部分: 从最后一个 '],' 后面开始json_start = line.rindex('],') + 2json_str = line[json_start:].strip()# 解析JSONdata = json.loads(json_str)# 提取role_id和vip,如果vip不存在则返回0role_id = data.get('role_id', '')vip = data.get('vip', 0)return role_id, vipexcept Exception as e:print(f"Error parsing line: {e}")return '', 0# 测试代码
test_log = '''1068 1529597015396 g60-database-380.i.nease.net /home/g60/gamedata/log/g60_GameStatistic_20180622.log  380_game02 G60_GameStatistic 1529596878_35 [2018-06-22 00:01:18][MercLevelUp],{"merc_capacity":2739,"cur_level":70,"accountid":"aebfr2ualeolqplc@ad.netease.win.163.com","type_id":307,"udid":"66e0b0278fbef358","ip":"101.90.127.224","role_sex":1,"app_channel":"netease","server":"380","role_occ":4,"role_id":"698382","vip":6,"pre_level":69,"guid":6882678726665895936,"role_level":80}'''# 测试示例日志
role_id, vip = parse_log_line(test_log)
print(f"Role ID: {role_id}, VIP: {vip}")# 测试vip缺失的情况
test_log_no_vip = '''1068 1529597015396 g60-database-380.i.nease.net /home/g60/gamedata/log/g60_GameStatistic_20180622.log  380_game02 G60_GameStatistic 1529596878_35 [2018-06-22 00:01:18][MercLevelUp],{"merc_capacity":2739,"cur_level":70,"role_id":"698382","role_level":80}'''role_id, vip = parse_log_line(test_log_no_vip)
print(f"\nTesting log without VIP field:")
print(f"Role ID: {role_id}, VIP: {vip}")

运行结果: 


http://www.mrgr.cn/news/62390.html

相关文章:

  • macOS 中,默认的 Clang 编译器和 Homebrew 安装的 GCC 都不包含 bits/stdc++.h 文件
  • 基于GAN和RL的思想来训练对话生成
  • Redis 安装与配置指南
  • Clojure语言的并发编程
  • Kubernetes开发环境minikube | 开发部署apache tomcat web单节点应用
  • 微信小程序实现拖拽盒子效果
  • 个人在ssm框架整合时犯的错误
  • 只尊重不教育,只筛选不改变
  • Threejs渲染3D字体介绍
  • gradio RuntimeError: async generator raised StopAsyncIteration
  • 阿里巴巴API返回值全解析:轻松掌握1688店铺商品信息
  • 【系统设计】高效的分布式系统:使用 Spring Boot 和 Kafka 实现 Saga 模式
  • SAP ABAP开发学习——第一代增强(包含增强演示)
  • BOE(京东方)2024年前三季度净利润三位数增长 “屏之物联”引领企业高质发展
  • java-数据结构
  • C++学习:类和对象(二)
  • AI时代,哪种人更被需要?
  • 【传知代码】自动化细胞核分割与特征分析
  • flowable7.1.0功能
  • 单例 C++ 懒汉+恶汉
  • 前端面试题21 | 了解过媒体查询吗?它有哪些应用场景?
  • 《JVM第4课》程序计数器
  • 注册信息的提交
  • 不适合的学习方法
  • (5)数组
  • 【SAP FICO】八大业务_6货币资金管理