如何用Python提取日志行指定内容并进行拆分?
解决方法
方法一:用Python脚本处理
你之前没法直接把行当作字典访问,是因为每行是JSON格式的字符串,得先转成Python字典才行。用下面的脚本就能搞定:
import json # 替换成你的日志文件路径 log_file_path = "your_logs.log" with open(log_file_path, 'r') as log_file: for line in log_file: # 去掉每行首尾的空格和换行符 line = line.strip() if not line: continue try: # 把JSON字符串转成字典 log_dict = json.loads(line) # 提取time字段 raw_time = log_dict["time"] # 按.拆分,取前面的部分,自动去掉毫秒和Z clean_time = raw_time.split(".")[0] # 这里可以打印或者写入文件 print(clean_time) except json.JSONDecodeError: # 跳过格式错误的行 print(f"跳过格式错误的行:{line}") continue
如果要把结果保存到文件,把print(clean_time)换成:
with open("cleaned_times.txt", "a") as out_file: out_file.write(clean_time + "\n")
方法二:用命令行工具jq(适合Linux/macOS)
如果不想写脚本,用jq这个JSON处理工具更快捷,直接在终端跑命令:
jq -r '.time | split(".")[0]' your_logs.log
-r:输出原始字符串(不带引号).time:提取日志条目中的time字段split(".")[0]:按小数点拆分时间字符串,取第一部分
补充说明
你之前尝试直接用索引访问失败,本质是没把JSON字符串转换成可操作的字典结构,用json.loads()处理后,就能像普通字典一样通过["time"]提取字段了。
内容的提问来源于stack exchange,提问作者Linuxnoob
相关产品推荐
相关产品推荐

