python-3.x - one - python categorical to numeric
codificación python() (1)
¿Se ha excluido el códec hexadecimal de Python 3.3? Cuando escribo el código
>>> s="Hallo"
>>> s.encode(''hex'')
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
s.encode(''hex'')
LookupError: unknown encoding: hex
Qué significa eso? Sé sobre binascii.hexlify () pero aún el método .encode () es bueno! ¿Cualquier sugerencia?
No, usar encode()
para hexlify no es agradable.
La forma en que usa el códec hex
funcionó en Python 2 porque puede invocar encode()
en cadenas de 8 bits en Python 2, es decir, puede codificar algo que ya está codificado. Eso no tiene sentido. encode()
es para codificar cadenas Unicode en cadenas de 8 bits, no para codificar cadenas de 8 bits como cadenas de 8 bits.
En Python 3 ya no puedes llamar a encode()
en cadenas de 8 bits, por lo que el códec hex
sentido y se eliminó.
Aunque teóricamente podrías tener un códec hex
y usarlo así:
>>> import codecs
>>> hexlify = codecs.getencoder(''hex'')
>>> hexlify(b''Blaah'')[0]
b''426c616168''
Usar binascii es más fácil y más agradable:
>>> import binascii
>>> binascii.hexlify(b''Blaah'')
b''426c616168''