'str' Objekt hat kein Attribut 'decode'. Python 3 Fehler?
Hier ist mein code:
import imaplib
from email.parser import HeaderParser
conn = 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')
an dieser Stelle bekomme ich die Fehlermeldung
AttributeError: 'str' object has no attribute 'decode'
Python 3 nicht mehr entschlüsseln, habe ich Recht? wie kann ich dieses Problem beheben?
Außerdem, in:
data = conn.fetch('1', '(BODY[HEADER])')
Ich bin die Auswahl nur die 1. E-Mail. Wie wähle ich alle?
InformationsquelleAutor der Frage | 2015-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie versuchen, Sie zu entschlüsseln ein Objekt, das bereits dekodiert. Sie haben eine
str
gibt es keine Notwendigkeit zum Dekodieren von UTF-8 nicht mehr.Einfach der
.decode('utf-8')
Teil:Als für Ihre
fetch()
nennen, Sie sind ausdrücklich aufgefordert, nur für die erste Nachricht. Verwenden Sie einen Bereich, wenn Sie abrufen möchten mehr Nachrichten. Finden Sie die Dokumentation:InformationsquelleAutor der Antwort Martijn Pieters
Beginnen mit Python 3, alle string-unicode-Objekt.
den code vor sind die gleichen. Also ich denke, Sie sollten entfernen Sie die
.decode('utf-8')
. Denn Sie haben sich bereits in der unicode-Objekt.InformationsquelleAutor der Antwort Neo Ko
Verwenden Sie diese Methode:
InformationsquelleAutor der Antwort Alireza
Ich bin nicht vertraut mit der Bibliothek, aber wenn Ihr problem ist, dass Sie nicht möchten, dass ein byte-array, das eine einfache Möglichkeit ist, um anzugeben, eine Codierung geben gerade in einem Guss:
InformationsquelleAutor der Antwort Broper