W Pythonie 2, aby uzyskać reprezentację ciąg cyfr szesnastkowych w ciąg, można zrobićJak korzystać z kodowania "hex" w Pythonie 3.2 lub nowszym?
>>> '\x12\x34\x56\x78'.encode('hex')
'12345678'
w Pythonie 3, to już nie działa (testowane na Pythonie 3.2 i 3.3):
>>> '\x12\x34\x56\x78'.encode('hex')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
LookupError: unknown encoding: hex
Istnieje co najmniej one answer tu tak, że wskazuje, że kodek hex
usunięto Pythona 3. potem, according to the docs, został ponownie w Pythonie 3.2, jako „mapowanie bajtów, do bajtów”.
Jednak nie wiem jak uzyskać te „bajtów-do-mapowania bajtów” do pracy:
>>> b'\x12'.encode('hex')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'bytes' object has no attribute 'encode'
I docs nie wspomnieć, że albo (przynajmniej nie tam, gdzie spojrzałem) . Muszę przegapić coś prostego, ale nie widzę, co to jest.
zobaczyć tę odpowiedź: http: // stackoverflow.com/a/2340358/1298523 – scape
Chciałbym się spierać przed zamknięciem tego jako dupe. To pytanie dotyczy konkretnie Python 3.2, gdzie kodek 'hex' jest oficjalnie z powrotem (ale trudniejszy do znalezienia). Powiązane pytanie dotyczy Python 3.1. –