Reputation: 347
I need to convert int list into a byte string but I don't know how. I can't use bytes()
because the values are too large.
bytes([152710136, 76354857, 38177353, 2252736081, 1126368238])
I get this error:
ValueError: bytes must be in range(0, 256)
The expected value is:
b'\xc4\xb7\x86\x17\xcd'
Upvotes: 1
Views: 8988
Reputation: 8945
I needed to use struct.unpack() and it accepts a byte string rather than a list of ints. I was able to convert my list of ints to a byte string with:
bytearray(mylist)
Tested on python 2.7.
Upvotes: 1
Reputation: 26057
You can use .to_bytes
to return an array of bytes representing an integer.
Note: This works only in python 3.1 and above.
For example:
>>> (1024).to_bytes(2, byteorder='big')
b'\x04\x00'
Upvotes: 4