python 3中的解码错误

时间:2017-07-20 20:33:18

标签: python

尝试解码图片,对这些属性有一些问题:

headerdata = struct.unpack("4s"+\
                               "I"+\
                               str(Header.MAX_FORMAT_LENGTH)+"s",
                                data[:4+4+Header.MAX_FORMAT_LENGTH].encode())
    header.magicnum = headerdata[0]
    header.size = headerdata[1]
    header.fformat = headerdata[2].strip("\x00").decode()

我知道有encode()decode()功能的内容,但无法弄清楚它是如何与我合作的。

出现此错误:

  

header.fformat = headerdata [2] .strip(" \ x00")。decode()   TypeError:需要类似字节的对象,而不是' str'

我做错了什么?

1 个答案:

答案 0 :(得分:0)

由于headerdata包含bytesstrip的参数也必须为bytes

headerdata[2].strip(b"\x00").decode()

请注意,值0有点特殊,在解码bytes对象时,它会终止你的字符串。