字节数组转换,python3上的整数是必需的错误

时间:2019-04-01 12:27:45

标签: python arrays python-3.x

在0x00十六进制位置上求一个整数python3

>>> command = bytearray()
>>> command.extend(chr(0x00))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required

1 个答案:

答案 0 :(得分:1)

字节数组由bytesb'\x00')或字节大小的int s(0x00)组成。 chr(0x00)的结果是一个unicode字符串。

您可以向bytearray.extend提供a)一个字节字符串或b)一个可迭代的字节大小的整数。这两个都代表bytearray是“字节序列”。另外,两者都可以使用十六进制表示法。

command.extend(b'\x00')
command.extend([0x00])

如果要添加一个整数,也可以使用bytearray.append

command.append(0x00)

由于字符串是可迭代的,因此bytearray.extend尝试附加其元素。但是,这些也是字符串。因此,出现了预期为整数的错误。