1 回答

TA貢獻1951條經驗 獲得超3個贊
我這樣做的一般方法是在日志文件中查找結構,然后將其提取出來。:查看您共享的數據,感興趣的行上有一個字符和十六個逗號分隔值。由于數據不是直接放入json的形式,所以我存儲在一個臨時字典中,然后將其轉換為json字符串。示例如下:
import json
# parse the log file and store in dictionary
raw_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 dictionary
result_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 string
result_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", "": ""}
雖然這不是一個完美的結果,但它應該有望通過實際數據得到改進。
添加回答
舉報