2012-04-10 31 views
7

Estoy intentando ejecutar el código:Struct.Error, debe ser un objeto Bytes?

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

pero aparece el error:

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

¿Por qué? ¿Cómo puedo solucionar esto?

Respuesta

22

con Python 3, 'ab' no es un objeto bytes, lo que se llama un str en Python 2, es unicode. Es necesario utilizar:

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

que le dice a Python que 'ab' es un byte literal. Ver PEP 3112 para más información.

+3

Esta respuesta debería marcarse como LA respuesta a la pregunta. – rbaleksandar

Cuestiones relacionadas