I have a UUID that I was thinking of packing into a struct using UUID.int, which turns it into a 128-bit integer. But none of the struct format characters are large enough to store it, how to go about doing this?
Sample code:
s = struct.Struct('L')
unique_id = uuid.uuid4()
tuple = (unique_id.int)
packed = s.pack(*tuple)
The problem is, struct format 'L' is only 4 bytes...I need to store 16. Storing it as a 32-char string is a bit much.
It is a 128-bit integer, what would you expect it to be turned into? You can split it into several components — e.g. two 64-bit integers:
As you're using
uuid
module, you can simply usebytes
member, which holds UUID as a 16-byte string (containing the six integer fields in big-endian byte order):