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

时间:2012-04-10 03:05:10

标签: python python-3.x

我正在尝试执行代码:

    values = (1, 'ab', 2.7)    
    s.struct.Struct('I 2s f')
    packed = s.pack(*values)

但我一直收到错误:

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

为什么呢?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:25)

使用Python 3,'ab'不是bytes对象,在Python 2上称为str,它是unicode。你需要使用:

values = (1, b'ab', 2.7)

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