我正在尝试为我的单元测试脚本创建HTML报告,当我尝试运行代码时,它正在抛出,这个错误AttributeError: 'str' object has no attribute 'decode'
下面是代码的一部分,它显示错误: -
if isinstance(o,str):
# TODO: some problem with 'string_escape': it escape \n and mess up formating
# uo = unicode(o.encode('string_escape'))
uo = o.decode('latin-1')
else:
uo = o
if isinstance(e,str):
# TODO: some problem with 'string_escape': it escape \n and mess up formating
# ue = unicode(e.encode('string_escape'))
ue = e.decode('latin-1')
else:
ue = e
script = self.REPORT_TEST_OUTPUT_TMPL % dict(
id = tid,
output = saxutils.escape(uo+ue),
)
以上代码来自HTMLTestRunner.py
文件。请帮助调试此问题。
答案 0 :(得分:2)
我假设您使用的是python3(因为您的问题中有标签)
在python3中,不再是unicode
类型,只是str
- str
是一种文本类型,已经解码,因此,不再是{ {1}} decode
的方法。
对于使用字符串,str
类型具有bytes
方法(decode
- ing decode
返回bytes
和{{1 }} - ing str
会返回encode
。
从现在开始 - 当类型为str
时,不要使用bytes
,只有当类型为decode
时才使用str
。
意味着您的代码应该如下所示:
decode