You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

日志列表转换:提取含等号行并将列格式行转为键值对

日志行筛选与格式转换解决方案

核心处理逻辑

  1. 先定位包含QUWERW的表头行,拆分提取表头字段列表
  2. 遍历所有日志行:
    • 含=的行直接保留原内容
    • 匹配表头格式的数据行,按表头字段与对应位置内容生成键值对字符串

代码实现示例(Python)

def process_log_lines(log_lines):
    processed = []
    headers = None
    # 先识别表头行
    for line in log_lines:
        stripped_line = line.strip()
        if 'QUWERW' in stripped_line:
            # 按空格拆分表头,可根据实际分隔符(制表符/逗号)调整
            headers = [h.strip() for h in stripped_line.split() if h.strip()]
            break
    
    # 逐行处理日志
    for line in log_lines:
        stripped_line = line.strip()
        if not stripped_line:
            continue
        # 保留含=的行
        if '=' in stripped_line:
            processed.append(stripped_line)
            continue
        # 将表头对应的数据行转为键值对
        if headers:
            fields = [f.strip() for f in stripped_line.split() if f.strip()]
            if len(fields) == len(headers):
                kv_pairs = [f"{k}={v}" for k, v in zip(headers, fields)]
                processed.append(' '.join(kv_pairs))
    return processed

# 测试示例
sample_log = [
    "Timestamp=2024-05-20 10:00:00",
    "QUWERW ID Name Status",
    "1001 Alice Active",
    "Server=prod-01",
    "1002 Bob Inactive"
]

for line in process_log_lines(sample_log):
    print(line)

适配调整说明

  • 若表头/数据行的分隔符不是空格,修改split()参数(比如split('\t')对应制表符、split(',')对应逗号)
  • 若存在表头与数据行字段数不匹配的情况,可添加跳过逻辑避免报错
  • 需保存结果到文件时,添加以下代码:
    with open('processed_log.txt', 'w') as f:
        f.write('\n'.join(process_log_lines(sample_log)))
    

内容的提问来源于stack exchange,提问作者Rasec Malkic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 05:01:26