2012-04-10 54 views
7

我試圖執行代碼:Struct.Error,必須是字節對象?

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 

爲什麼?我該如何解決?

回答

22

對於Python 3,'ab'不是bytes對象,Python 2上的所謂的str,它是unicode。您需要使用:

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

它告訴Python 'ab'是一個字節的文字。有關更多信息,請參閱PEP 3112

+3

此答案應標記爲問題的答案。 – rbaleksandar 2013-09-29 11:33:10

相關問題