传入字节对象时 bytes.join 引发的 TypeError

TypeError raised by bytes.join when passing in a byte object

我正在尝试连接两个字节对象:

header = struct.pack(STRFMT, MAGIC, VERSION,
            command, self.seq, self.session)

data = dataStr.encode() # dataStr is a String

print(type(header)) # <class 'bytes'>
print(type(header)) # <class 'bytes'>

header.join(data)

但是在运行时调用 header.join 时出现以下类型错误:

TypeError: sequence item 0: expected bytes, int found

我是不是漏掉了什么?

你应该在这里使用header + datab''.join 方法迭代 bytes 对象,在 Python 上产生 int 3:

>>> list(b'abc')
[97, 98, 99]

另见,PEP 467 -- Minor API improvements for binary sequences