Struct.Error,必须是字节对象?

Bil*_*ljk 9 python python-3.x

我正在尝试执行代码:

    values = (1, 'ab', 2.7)    
    s.struct.Struct('I 2s f')
    packed = s.pack(*values)
Run Code Online (Sandbox Code Playgroud)

但我一直收到错误:

    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    struct.error: argument for 's' must be a bytes object
Run Code Online (Sandbox Code Playgroud)

为什么?我该如何解决?

agf*_*agf 25

使用Python 3,'ab'它不是一个bytes对象,str在Python 2上被称为a ,它就是unicode.你需要使用:

values = (1, b'ab', 2.7)
Run Code Online (Sandbox Code Playgroud)

它告诉Python这'ab'是一个字节文字.有关详细信息,请参阅PEP 3112.

  • 这个答案应该标记为问题的答案. (3认同)