我使用的是Python 2.7,我需要将struct.pack()
函数的返回值(根据文档为str
)转换为bytearray
对象。 bytearray()
内置函数接受字符串值,但文档说我还必须传递encoding
参数,用于将字符串编码为字节。我不知道编码应该是什么,因为struct.pack()
返回值可能已经是字节值,它不是实际的文本字符串,因此没有编码。
那么如何将存储在Python2 bytes
中的str
对象转换为bytearray
对象?
答案 0 :(得分:3)
更新:文档已corrected;在传入字符串时,您不需要使用encoding参数,该部分现在正确地告诉您只需要unicode
个对象。
我的旧答案如下。
文档错了;它是从Python 3批量复制的,其中确实需要编码参数,因为(unicode)字符串必须首先编码为字节。
在Python 2上,只需传入字符串,不指定编码:
>>> bytearray('The quick brown fox jumps over the lazy dog')
bytearray(b'The quick brown fox jumps over the lazy dog')
并使用 unicode
字符串在文档中精神上替换 string 。
我已经提交了一个新的issue in the Python tracker来更正此问题。