Error en Python 3.7 ‘bytes’ object has no attribute ‘encode’

publicado por: Anonymous

En Python 3.7 estoy haciendo:

>>> from struct import pack as spack
>>> a1=spack("LLLL", 45129401,92367215,681285731,1710201)
>>> a1.encode('hex')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'bytes' object has no attribute 'encode'

Pero como veis me da el error:

‘bytes’ object has no attribute ‘encode’

solución

Estamos hablando de str.encode(), es decir un método de objetos tipo cadena, sin embargo struct.pack() retorna un objeto de tipo bytes que, claramente lo menciona el error, no posee un atributo encode. El problema posiblemente se deba a que estás intentando usar código 2x con la versión 3x de Python. Si lo que buscas es convertir los bytes generados a una cadena hexadecimal, en vez de hacer a1.encode('hex') puedes hacer lo siguiente:

import codecs
print(codecs.encode(a1, 'hex_codec'))
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *