9

私はコードを実行しようとしています:

    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

なんで?これを修正するにはどうすればよいですか?

4

1 に答える 1

25

Python 3 では、はオブジェクトで'ab'はなく、Python 2 でbytesa と呼ばれていたものは. 以下を使用する必要があります。strunicode

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

これはPythonに'ab'バイトリテラルであることを伝えます。詳細については、 PEP 3112を参照してください。

于 2012-04-10T03:09:16.047 に答える