'str'對(duì)象沒(méi)有屬性'decode'。Python 3錯(cuò)誤?
您正在嘗試解碼 已解碼 的對(duì)象。您有一個(gè)str,不再需要從UTF-8解碼。
只需刪除.decode(’utf-8’)部分:
header_data = data[1][0][1]
至于您的fetch()通話(huà),您明確要求僅發(fā)送第一條消息。如果要檢索更多消息,請(qǐng)使用范圍。請(qǐng)參閱文檔:
下面命令的 message_set選項(xiàng)是一個(gè)字符串,用于指定要執(zhí)行的一條或多條消息。它可以是簡(jiǎn)單的消息號(hào)(’1’),消息號(hào)的范圍(’2:4’)或由逗號(hào)分隔的一組非連續(xù)范圍(’1:3,6:9’)。一個(gè)范圍可以包含一個(gè)星號(hào),以指示一個(gè)無(wú)限的上限(’3:*’)。
解決方法這是我的代碼:
import imaplibfrom email.parser import HeaderParserconn = 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’)
此時(shí),我收到錯(cuò)誤消息
AttributeError: ’str’ object has no attribute ’decode’
Python 3不再具有解碼了,對(duì)嗎?我怎樣才能解決這個(gè)問(wèn)題?
另外,在:
data = conn.fetch(’1’,’(BODY[HEADER])’)
我只選擇第一封電子郵件。如何選擇全部?
