Really you should explicitly specify the encoding when converting to bytes from a string. This answer also works in python 3:
arr.extend(format(id, "04x").encode('ascii'))
質問
I have a bytearray
to which I have to add a number as a four character string. i.g. 14 should be added as '0014'.
I tried this:
id = 14
arr.append(bytearray(format(id, '04x')))
but it results in:
TypeError: unicode argument without an encoding
解決
Really you should explicitly specify the encoding when converting to bytes from a string. This answer also works in python 3:
arr.extend(format(id, "04x").encode('ascii'))
他のヒント
arr.extend(bytes(format(id,"04x")))