当前位置: 首页 > 面试题库 >

'str'对象没有属性'decode'。Python 3错误?

韩琛
2023-03-14
问题内容

这是我的代码:

import imaplib
from email.parser import HeaderParser

conn = imaplib.IMAP4_SSL('imap.gmail.com')
conn.login('example@gmail.com', 'password')
conn.select()
conn.search(None, 'ALL')
data = conn.fetch('1', '(BODY[HEADER])')
header_data = data[1][0][1].decode('utf-8')

此时,我收到错误消息

AttributeError: 'str' object has no attribute 'decode'

Python 3不再具有解码了,对吗?我怎样才能解决这个问题?

另外,在:

data = conn.fetch('1', '(BODY[HEADER])')

我只选择第一封电子邮件。如何选择全部?


问题答案:

您正在尝试解码 已解码 的对象。您有一个str,不再需要从UTF-8解码。

只需删除.decode('utf-8')部分:

header_data = data[1][0][1]

至于您的fetch()通话,您明确要求仅发送第一条消息。如果要检索更多消息,请使用范围。请参阅文档:

下面命令的 message_set
选项是一个字符串,用于指定要执行的一条或多条消息。它可以是简单的消息号('1'),消息号的范围('2:4')或由逗号分隔的一组非连续范围('1:3,6:9')。一个范围可以包含一个星号,以指示一个无限的上限('3:*')。



 类似资料:
  • 问题内容: 我在python 3.3.4中遇到“解码”方法的问题。这是我的代码: 但是我无法解码此问题的代码: 你有什么想法?谢谢 问题答案: 一种 编码 字符串,另一种 解码 字节。 您应该从文件中读取字节并对其进行解码: 幸运的是,有一个编码参数使操作变得简单:

  • 这是我的密码: 在这一点上,我得到了错误消息 Python 3已经没有解码了,对吗?我该怎么解决这个问题? 此外,在: 我只选择第一封电子邮件。如何选择全部?

  • Selenium/Python自动化新手。我在自动注册表单时被阻止。下拉列表是必需的元素,但我收到以下错误。。。 AttributeError:“str”对象没有属性“tag_name” 我把我的代码贴在下面,但是在网上找不到任何答案来解释为什么会这样。非常感谢任何/所有的帮助。 错误来自sel=Select('teamElement')行。

  • 问题内容: 为什么被认为是物体?返回列表中的第一项,但我不能追加到列表中的第一项。谢谢。 Edit01: @pyfunc:谢谢您的解释;现在我明白了。 我需要一个清单清单。因此“来自表单”应为列表。我做到了(如果这不是正确的方法,请更正): 问题答案: myList [1]是myList的元素,其类型是字符串。 myList [1]是str,您不能附加它。myList是一个列表,您应该已经附加了它

  • 问题内容: 有点困惑,因为我很肯定我以前曾经做过这项工作。 我创建了以下方法… 但是当我在导入的CSV文件上运行它时,会产生此错误: 尽管我可以看到这是文档中的一个属性: https://pandas.pydata.org/pandas- docs/stable/generation/pandas.Series.str.isnumeric.html?highlight=isnumeric#pand

  • 问题内容: 我正在尝试使用SQLAlchemy + Python将一个项目添加到我的数据库中,但始终出现错误。 我的database_setup.py: 在将sqlalchemy导入到终端后,我定义了一个要插入的项目: 并绘制一个会话以添加和提交: 当我提交时,我不断收到此错误: 我在我的公司表中添加了一个“ Jawbone”对象,我理解我的“ JawboneUP3”应该与之相关。该对象是通过我通