<p>您可以使用<strong>正则表达式</strong>从故障日志文件名中提取信息。这可以通过以下方式简单实现:</p>
<pre><code>import re
import json
all_failures = [
'test1/path/to/test1/log/failure_reason1',
'test1/path/to/test1/log/failure_reason2',
'test2/path/to/test2/log/failure_reason1',
'test2/path/to/test2/log/failure_reason2',
'test3/path/to/test3/log/failure_reason1',
'test4/path/to/test4/log/failure_reason1',
]
info = dict()
for failure in all_failures:
match = re.search(r"^(.*?)(/.*/)(.*)$", failure)
details = dict()
details["path"] = match.group(2)
details["reason"] = match.group(3)
if match.group(1) in info:
info[match.group(1)].append(details)
else:
info[match.group(1)] = []
info[match.group(1)].append(details)
print(json.dumps(info, indent=4))
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>{
"test1": [
{
"path": "/path/to/test1/log/",
"reason": "failure_reason1"
},
{
"path": "/path/to/test1/log/",
"reason": "failure_reason2"
}
],
"test2": [
{
"path": "/path/to/test2/log/",
"reason": "failure_reason1"
},
{
"path": "/path/to/test2/log/",
"reason": "failure_reason2"
}
],
"test3": [
{
"path": "/path/to/test3/log/",
"reason": "failure_reason1"
}
],
"test4": [
{
"path": "/path/to/test4/log/",
"reason": "failure_reason1"
}
]
}
</code></pre>