avan989
avan989

Reputation: 347

converting large int list to byte string python

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

Answers (2)

Samuel
Samuel

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

Austin
Austin

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

Related Questions