base64.urlsafe_b64decode python3?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
8023
User
Beiträge: 10
Registriert: Sonntag 21. Juli 2019, 15:21

ich versuch mich gerade an der gmail api... nach den print" " zu urteilen sind die Beispiele wohl für python2 gedacht. ich nutze aber python3...

nun mein Problem;

Code: Alles auswählen

import base64
import email
    ....
            msg_str = base64.urlsafe_b64decode(MAIL['raw'].encode('ASCII'))
            print('\033[25;4H msg_str :',msg_str,'\033[40;4H')
            mime_msg = email.message_from_string(msg_str)
            print('\033[30;4H mime_msg',mime_msg,'\033[40;4H')
da bekomm ich

Code: Alles auswählen

    msg_str  b'MIME-Version: 1.0\r\nDate: Fri, 15 May 2020 13:59:18 +02 (usw...)
soweit so gut, aber weiter kommt er nicht und wirft mir den Fehler

Code: Alles auswählen

(...)
    mime_msg = email.message_from_string(msg_str)
  File "/usr/lib/python3.7/email/__init__.py", line 38, in message_from_string
    return Parser(*args, **kws).parsestr(s)
  File "/usr/lib/python3.7/email/parser.py", line 68, in parsestr
    return self.parse(StringIO(text), headersonly=headersonly)
TypeError: initial_value must be str or None, not bytes
vor die Füsse...
so wie ich das verstehe, macht er das decode nicht...
ich nehme an, dass sich da irgendwas von python2 zu 3 geändert hat, denn ich find nicht wirklich was zu. Jemand eine Idee wie ich das encode zum laufen bekomm?
8023
User
Beiträge: 10
Registriert: Sonntag 21. Juli 2019, 15:21

ich hab das jetzt mit
mime_msg = email.message_from_string(msg_str.decode())
umgangen...

wenn jemandem ein schönerer/besserer weg einfällt, immer raus damit... nur nicht schüchtern...
Antworten