Decodifique la cadena base64 en Python 3 (con lxml o no)

Sé que esto parece vergonzosamente fácil, y creo que el problema es que simplemente no tengo una comprensión clara de todo esto.bytes-str-unicode (ydecodificación de codificación, hablando francamente) cosas todavía.

He estado intentando que mi código de trabajo se ejecute en Python 3. La parte con la que me quedo es cuando analizo un XML conlxml y decodifica una cadena base64 que está en ese XML.

El código ahora funciona de la siguiente manera:

Recupero los datos binarios con una consulta XPath'.../binary/text()'. Esto produce una lista de un elemento que contiene unalxml.etree._ElementUnicodeResult objeto. Luego, con python 2, pude hacer:

<code>decoded = source.decode('base64')
</code>

y finalmente

<code>output = numpy.frombuffer(decoded)
</code>

Sin embargo, en Python 3 recibo un mensaje de error que dice

<code>AttributeError: 'lxml.etree._ElementUnicodeResult' object has no attribute 'decode'
</code>

Esto no es tan sorprendente, porquelxml.etree._ElementUnicodeResult es una subclase destr.

Otra forma sería conseguir un verdaderostr con los mismos datos en ella con

<code> binary = tree.xpath('//binary')[0]
 binary_string = binary.text
</code>

Eso sería esencialmente lo mismo. Entonces, ¿qué hago para decodificarlo desde base64? He mirado elbase64 módulo, pero se necesita unabytes objetar como un argumento, y no puedo pensar en la forma de presentarstr comobytes, porque si intento construir unbytes objeto, Python intentarácodificar La cadena, que no necesito.

Buscando más en Google, me encontré con elbinascii módulo (que se invoca indirectamente desdebase64 De todos modos, si no me equivoco), pero llamando.binascii.b2a_base64() en mi cadena produce

<code>TypeError: 'str' does not support the buffer interface
</code>

PD Incluso he encontrado una pregunta respondida enCómo descifrar una cadena hexadecimal en Python 3, pero esto se hace con un método dedicado.bytes.fromhex() así que no veo cómo sería útil.

¿Podría alguien decirme lo que me estoy perdiendo? Me temo que la mayor parte del post es irrelevante y solo agrava mi vergüenza, pero al menos ustedes sabenlo que intenté.

Respuestas a la pregunta(2)

Su respuesta a la pregunta