'str'對象沒有屬性'decode'。Python 3錯誤?
您正在嘗試解碼 已解碼 的對象。您有一個str,不再需要從UTF-8解碼。
只需刪除.decode(’utf-8’)部分:
header_data = data[1][0][1]
至于您的fetch()通話,您明確要求僅發送第一條消息。如果要檢索更多消息,請使用范圍。請參閱文檔:
下面命令的 message_set選項是一個字符串,用于指定要執行的一條或多條消息。它可以是簡單的消息號(’1’),消息號的范圍(’2:4’)或由逗號分隔的一組非連續范圍(’1:3,6:9’)。一個范圍可以包含一個星號,以指示一個無限的上限(’3:*’)。
解決方法這是我的代碼:
import imaplibfrom email.parser import HeaderParserconn = imaplib.IMAP4_SSL(’imap.gmail.com’)conn.login(’[email protected]’,’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])’)
我只選擇第一封電子郵件。如何選擇全部?