Printing in Python Bytearray

I have an integer list in Python that should match the following int values ​​(which can be changed to hexadecimal byte values):

[10, 145, 140, 188, 212, 198, 210, 25, 152, 20, 120, 15, 49, 113, 33, 220, 124, 67, 174, 224, 220, 241, 241] 

However, when I convert this list to bytearray (using bytearray (nameOfList)), I get the following listing.

 bytearray(b'\n\x91\x8c\xbc\xd4\xc6\xd2\x19\x98\x14x\x0f1q!\xdc|C\xae\xe0\xdc\xf1\xf1') 

I can get the correct values ​​from this byte array, no matter how it prints, but shouldn't the post print match the hexadecimal values ​​of the byte array? (I mean that it apparently follows the hexadecimal values ​​mostly until after \ x0f, where it starts to confuse gibberish ...)

+8
python
source share
2 answers
 >>> x = bytearray(b'\n\x91\x8c\xbc\xd4\xc6\xd2\x19\x98\x14x\x0f1q!\xdc|C\xae\xe0 \xdc\xf1\xf1') >>> import binascii >>> print binascii.hexlify(x) 0a918cbcd4c6d2199814780f317121dc7c43aee0dcf1f1 

Use binascii if you want it all to be printed as a hex string

+27
source share

I'm fine. It simply outputs bytes as ASCII characters when possible. After 15 = \x0f you have 49 = '1' and 113 = 'q', etc.

See http://asciitable.com

+5
source share

All Articles