在python中解析非结构化日志文件

我想解析一个包含非结构化文本的日志文件。我需要获取核心 ID,在 json 中通过/失败。自一周以来,我是编程的新手,我将不胜感激。


AMPTTK v25: RSA ALL THREADS

================RSACores X RSACores==============

time: 421045.73

Num Threads Available to process: 256

Num Cores   Requested to execute: 256

TSC freq: 1600629120.0


Memory allocated @ main (not all used by program): 3842.000000 MB


  RSA thread:       : 0

wrkspace addr       : 7f0483400000

wrkspace size       : f00000


        # cores:   16

        core id:      0,      1,      2,      3,      4,      5,      6,      7,     64,     65,     66,     67,     68,     69,     70,     71,

      pass/fail:   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,

       test ipc:  4.497,  4.503,  4.489,  4.476,  4.537,  4.471,  4.499,  4.459,  4.934,  4.946,  4.892,  4.933,  4.927,  4.927,  4.882,  4.886,

     aperf(MHz):   2826,   2814,   2826,   2826,   2826,   2826,   2827,   2826,   2909,   2909,   2909,   2909,   2909,   2909,   2909,   2909,

      aperf ipc:  2.392,  2.408,  2.397,  2.392,  2.397,  2.388,  2.397,  2.388,  2.341,  2.341,  2.340,  2.341,  2.341,  2.341,  2.340,  2.340,

     mce status:   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,   pass,


POPMUISE
浏览 90回答 1
1回答

饮歌长啸

我这样做的一般方法是在日志文件中查找结构,然后将其提取出来。:查看您共享的数据,感兴趣的行上有一个字符和十六个逗号分隔值。由于数据不是直接放入json的形式,所以我存储在一个临时字典中,然后将其转换为json字符串。示例如下:import json# parse the log file and store in dictionaryraw_data = {}with open('unstructured_data.txt') as log:    for line in log:        line = line.rstrip()        if line.count(':') == 1:            heading, data = line.split(':')            fields = data.split(',')            if len(fields) > 15:                raw_data[heading.lstrip()] = fields# Put only data of interest in to another python dictionaryresult_data = {}for i in range(len(raw_data['core id'])):    result_data[raw_data['core id'][i].strip()] = raw_data['pass/fail'][i].strip()# Convert python dictionary to json stringresult_json = json.dumps(result_data)print(result_json)从您的日志文件中给出以下内容:$ python3 parse_log.py {"0": "pass", "1": "pass", "2": "pass", "3": "pass", "4": "pass", "5": "pass", "6": "pass", "7": "pass", "64": "pass", "65": "pass", "66": "pass", "67": "pass", "68": "pass", "69": "pass", "70": "pass", "71": "pass", "": ""}虽然这不是一个完美的结果,但它应该有望通过实际数据得到改进。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python