擅长:python、mysql、java
<p>你可以试试这个:</p>
<pre><code>import re
output = ["SystemMonitor: [2017-08-07 10:05:00,333] [ERROR] 12432: missing port number 302", "SystemMonitor: [2017-08-07 10:05:00,333] [ERROR] 13332: cant reach host"]
headers = ["main", "date", "status", "error_msg"]
new_data = [re.split("\s(?=\[)", i) for i in output]
new_data = [i[:-1]+i[-1].split(":") for i in new_data]
final_error_messages = [{a:b for a, b in zip(headers, i)} for i in new_data]
</code></pre>
<p>输出包含包含包含所需数据的词典列表:</p>
<pre><code>[{'date': '[2017-08-07 10:05:00,333]', 'status': '[ERROR] 12432', 'main': 'SystemMonitor:', 'error_msg': ' missing port number 302'}, {'date': '[2017-08-07 10:05:00,333]', 'status': '[ERROR] 13332', 'main': 'SystemMonitor:', 'error_msg': ' cant reach host'}]
</code></pre>