当遇到错误“TypeError: 'str' 不支持缓冲区接口”时,您有两个选项将字符串转换为字节:
选择更Pythonic的方法
bytes 类型的 Python 文档建议使用 bytearray 作为从 a 初始化字节数组的首选方法string:
bytearray([source[, encoding[, errors]]])
考虑到这一点,由于字节可以执行编码字符串之外的各种任务,因此构造函数接受不同类型的源参数是有意义的。
对于具体来说,使用 some_string.encode(encoding) 比 bytes(some_string,编码):
此外,unicode_string.encode(encoding) 也更 Pythonic,因为它逆是byte_string.decode(encoding),保持对称性。
使用CPython优化性能
如果使用CPython,将unicode字符串传递给bytes直接调用PyUnicode_AsEncodedString,即编码的底层实现。因此,自己调用编码可以消除不必要的间接级别,并有可能提高性能。
以上是如何在Python 3中高效地将字符串转换为字节?的详细内容。更多信息请关注PHP中文网其他相关文章!