Python如何解析杂乱字符串列表 提取测试用例CODE和执行状态
报错原因
res_smaller列表中存储的是BeautifulSoup返回的Tag类型对象,并非纯文本字符串,直接对Tag对象调用split()方法会触发类型错误。你需要先提取Tag对应的文本内容,再做后续的内容提取操作。
解决方案
推荐使用正则匹配的方式提取信息,这种方式不受文本空格数量变化影响,稳定性更高:
import re result = {} l = len(res_smaller) for field in range(1, l, 2): # 提取Tag对象的纯文本内容 tag_text = res_smaller[field].get_text() # 匹配CODE_xxx格式的用例编码 code_res = re.search(r"CODE_\d+", tag_text) # 匹配末尾的执行状态 status_res = re.search(r"(Passed|Failed)$", tag_text.strip()) if code_res and status_res: result[code_res.group()] = status_res.group() # 输出最终字典 print(result)
如果希望用拆分字符串的方法实现,修改后代码如下:
result = {} l = len(res_smaller) for field in range(1, l, 2): tag_text = res_smaller[field].get_text() text_parts = tag_text.split() # 提取用例编码并去掉末尾的冒号 case_code = text_parts[3].rstrip(":") # 提取末尾的执行状态 case_status = text_parts[-1] result[case_code] = case_status print(result)
内容的提问来源于stack exchange,提问作者Andrei0408
相关产品推荐
相关产品推荐

