我想解析以下json对象格式的python中的日志。谁能建议我如何在python中做到这一点?
2015-11-10 15:26:56 4348 [Note] InnoDB: Memory barrier is not used
2018-10-12T04:25:39.841627Z 5 Init DB mysql
答案 0 :(得分:0)
看看以下正则表达式:
(\d{4}-\d{2}-\d{2})\s*(\d{2}:\d{2}:\d{2})\s*(\d{4})\s*(.*)
可以在下面的正则表达式演示中看到完整的解释,但是基本上它的作用是寻找它:
()
)
\d{4}
),然后是-
\d{2}
)后接另一个破折号\d{2}
)()
,与日期具有相同的逻辑,只是用冒号(:
隔开)\d{4}
)用于编码(如果可以有任意不同的数字,则可以跳过花括号并添加一个+
来代替一个\d+
-这将要求一位或多位数字)如果我猜对了Ubuntu日志的输出,则它与MySQL日志大致相同,因此我不会发表完整的解释-您可以随时在下面的Regex101演示中查看它。
正则表达式如下:
(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})(?:\.\d+Z)\s*(\d+)\s*(.*)
一些注意事项:
T
.#####
格式在几秒后存储毫秒(?)-我舍弃此信息以替代(如果需要,请告诉我)这是一个更新的Ubuntu演示,其中还存储了毫秒,并且不将5
视为代码,而是描述的一部分:Link to demo