使用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 json

def parse_log_line(line):
    try:
        # 查找JSON部分: 从最后一个 '],' 后面开始
        json_start = line.rindex('],') + 2
        json_str = line[json_start:].strip()
        
        # 解析JSON
        data = json.loads(json_str)
        
        # 提取role_id和vip,如果vip不存在则返回0
        role_id = data.get('role_id', '')
        vip = data.get('vip', 0)
        
        return role_id, vip
        
    except 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}")

运行结果: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值