Cómo convertir mi bytearray (‘b \ x9e \ x18K \ x9a’) a algo como esto -> ‘\ x9e \ x18K \ x9a’ <— simplemente str, no array

Cómo convertir mi bytearray('b\x9e\x18K\x9a') a algo como esto -> \x9e\x18K\x9a <— simplemente str, no array!

 >> uidar = bytearray() >> uidar.append(tag.nti.nai.uid[0]) >> uidar.append(tag.nti.nai.uid[1]) >> uidar.append(tag.nti.nai.uid[2]) >> uidar.append(tag.nti.nai.uid[3]) >> uidar bytearray('b\x9e\x18K\x9a') 

Intento decodificar mi bytearray por

 uid = uidar.decode('utf-8') 

pero no puede …

 Traceback (most recent call last): File "", line 1, in  uid = uidar.decode("utf-8") File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0x9e in position 0: invalid start byte 

Ayudame por favor …

En 2.x, las cadenas son bytestrings.

 >>> str(bytearray('b\x9e\x18K\x9a')) 'b\x9e\x18K\x9a' 

Latin-1 asigna los primeros 256 caracteres a sus equivalentes de bytevalue, por lo que en Python 3.x:

 3>> bytearray(b'b\x9e\x18K\x9a').decode('latin-1') 'b\x9e\x18K\x9a'