如何使用Python解析日志文件中的JSON对象并按指定条件筛选输出
实现方案
你可以直接用Python内置的json模块完成需求,不需要安装第三方依赖,代码如下:
import json # 配置区:替换为你自己的文件路径 INPUT_LOG_PATH = "你的日志文件路径.log" OUTPUT_RESULT_PATH = "筛选后的结果.log" # 配置筛选条件,可根据自己的需求修改 def is_matched(json_obj): # 示例条件:event下的type为TEST_RESULTS,且event.data下的status为Unresolved # 你可以自行增删修改条件 if json_obj.get("event", {}).get("type") == "TEST_RESULTS" and json_obj.get("event", {}).get("data", {}).get("status") == "Unresolved": return True return False if __name__ == "__main__": with open(OUTPUT_RESULT_PATH, "w", encoding="utf-8") as out_f: with open(INPUT_LOG_PATH, "r", encoding="utf-8") as in_f: for line in in_f: # 跳过空行 line = line.strip() if not line: continue try: # 解析当前行的JSON json_data = json.loads(line) if is_matched(json_data): # 符合条件的行直接写入输出文件 out_f.write(line + "\n") except json.JSONDecodeError: # 遇到不符合JSON格式的行直接跳过,也可以根据需求改成打印告警 continue
使用说明
- 把代码里的
INPUT_LOG_PATH改成你本地的日志文件的实际路径,OUTPUT_RESULT_PATH改成你想要存放结果的文件路径 - 如果需要调整筛选规则,直接修改
is_matched函数里的判断条件即可 - 把代码保存为
filter_log.py,在命令行执行python filter_log.py就能得到筛选后的结果
内容的提问来源于stack exchange,提问作者kmancusi
相关产品推荐
相关产品推荐

