2012-04-10 28 views
7

Tôi đang cố gắng để thực thi mã:Struct.Error, Phải là đối tượng byte?

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

Nhưng tôi tiếp tục nhận được lỗi:

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

Tại sao? Làm thế nào để sửa lỗi này?

Trả lời

22

Với Python 3, 'ab' không phải là đối tượng bytes, được gọi là str trên Python 2, là unicode. Bạn cần sử dụng:

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

cho Python biết rằng 'ab' là byte. Xem PEP 3112 để biết thêm thông tin.

+3

Câu trả lời này phải được đánh dấu là câu trả lời cho câu hỏi. – rbaleksandar

Các vấn đề liên quan