如何用Python将事件日志对象转换为JSON格式
日志文本转指定JSON格式的Python实现方法
实现思路
日志里的有效数据集中在- id=xxx,...这一段,先截取这段内容,再用正则匹配出所有key=value对,最后转换为目标JSON格式。
代码实现
import re import json # 获取日志内容(你已通过该方式拿到的日志消息) spam = data['logEvents'][0]['message'] # 提取有效数据段:分割出`- `之后的键值对部分 log_data_part = spam.split('- ', 2)[-1].strip() # 正则匹配所有key=value对,兼容带空格/特殊字符的value pattern = re.compile(r'(\w+)=([^,]*(?:, (?!\w+=)[^,]*)*)') matches = pattern.findall(log_data_part) # 转换为字典 result_dict = {key: value.strip() for key, value in matches} # 生成目标JSON字符串 result_json = json.dumps(result_dict, indent=2) print(result_json)
代码说明
- 截取有效段:用
split('- ', 2)将日志拆分为三部分,取最后一段就是包含业务数据的键值对内容。 - 正则匹配:正则表达式
(\w+)=([^,]*(?:, (?!\w+=)[^,]*)*)会精准匹配每个key=value组合,其中value允许包含空格、竖线等特殊字符,不会误把下一个key=开头的内容纳入当前值,完美适配model、options这类字段。 - 转JSON:将匹配到的键值对转为字典后,用
json.dumps()生成符合要求的格式化JSON。
内容的提问来源于stack exchange,提问作者Divya
相关产品推荐
相关产品推荐

