「TypeError: 'str' はバッファ インターフェイスをサポートしていません」というエラーが発生した場合、文字列をバイトに変換するには 2 つのオプションがあります:
より Python 的なメソッドの選択
bytes 型に関する Python ドキュメントでは、バイト配列を初期化するための推奨方法として bytearray を使用することを推奨しています。 string:
bytearray([source[, encoding[, errors]]])
これを念頭に置くと、バイトは文字列のエンコードを超えてさまざまなタスクを実行できるため、コンストラクターがさまざまな種類のソース パラメーターを受け入れることは理にかなっています。
特に文字列エンコードでは、some_string.encode(encoding) を使用する方が bytes(some_string,エンコーディング):
さらに、unicode_string.encode(encoding) もさらに詳細です。その逆が byte_string.decode(encoding) であり、対称性が維持されるため、Python 的です。
CPython によるパフォーマンスの最適化
CPython を使用する場合、Unicode 文字列を bytes に渡すと、PyUnicode_AsEncodedString が直接呼び出されます。 、これはエンコードの基礎となる実装です。したがって、encode を自分で呼び出すと、不必要なレベルの間接化が排除され、パフォーマンスが向上する可能性があります。
以上がPython 3 で文字列をバイトに効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。