2012-04-10 16 views
7

मैं कोड निष्पादित करने का प्रयास कर रहा हूँ:स्ट्रक्चर.रर, बाइट्स ऑब्जेक्ट होना चाहिए?

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

अजगर 3, 'ab' के साथ एक bytes वस्तु, क्या अजगर 2 पर एक str बुलाया गया था नहीं है, यह unicode है।

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

जो अजगर बताता है कि 'ab' एक बाइट शाब्दिक है: आप प्रयोग करना होगा। अधिक जानकारी के लिए PEP 3112 देखें।

+3

यह उत्तर प्रश्न के उत्तर के रूप में चिह्नित किया जाना चाहिए। – rbaleksandar

संबंधित मुद्दे