uuid4 - string to hex python
¿Cómo usar la codificación ''hex'' en Python 3.2 o superior? (4)
En Python 2, para obtener una representación de cadena de los dígitos hexadecimales en una cadena, podrías hacer
>>> ''/x12/x34/x56/x78''.encode(''hex'')
''12345678''
En Python 3, eso ya no funciona (probado en Python 3.2 y 3.3):
>>> ''/x12/x34/x56/x78''.encode(''hex'')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
LookupError: unknown encoding: hex
Hay al menos una respuesta aquí en SO que menciona que el códec hex
se ha eliminado en Python 3. Pero luego, según los documentos , se reintrodujo en Python 3.2, como una "asignación de bytes a bytes".
Sin embargo, no sé cómo hacer que funcionen estas "asignaciones de bytes a bytes":
>>> b''/x12''.encode(''hex'')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: ''bytes'' object has no attribute ''encode''
Y los documentos tampoco mencionan eso (al menos no donde yo miraba). Debo estar perdiendo algo simple, pero no puedo ver lo que es.
Otra forma más usando binascii.hexlify()
:
>>> import binascii
>>> binascii.hexlify(b''/x12/x34/x56/x78'')
b''12345678''
Utilizando base64.b16encode()
:
>>> import base64
>>> base64.b16encode(b''/x12/x34/x56/x78'')
b''12345678''