AttributeError:' str'对象没有属性' decode'拉丁-1

时间:2017-05-06 07:26:51

标签: python-3.x selenium selenium-webdriver

我正在尝试为我的单元测试脚本创建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文件。请帮助调试此问题。

1 个答案:

答案 0 :(得分:2)

我假设您使用的是python3(因为您的问题中有标签)

在python3中,不再是unicode类型,只是str - str是一种文本类型,已经解码,因此,不再是{ {1}} decode的方法。

对于使用字符串,str类型具有bytes方法(decode - ing decode返回bytes和{{1 }} - ing str会返回encode

从现在开始 - 当类型为str时,不要使用bytes,只有当类型为decode时才使用str

意味着您的代码应该如下所示:

decode