今回は、PythonのStringからbytesへの変換と、PythonのbytesからStringへの変換について見ていきましょう。
Pythonの型変換は、データが異なる形で様々な操作の際に利用されるという特徴から、かなり重要視されるようになりました。
PythonのStringからbytesへの変換、bytesからStringへの変換は、ファイル操作の際に必要であることなどから、それなりの重要性を持っています。
Python の文字列をバイトに変換する
Pythonの文字列をbytesに変換するには、以下のどちらかの方法を使用します。
- bytes()` メソッドを使う。
- encode()` メソッドを使う。
1. Python の bytes() メソッドで文字列をバイトに変換する
Python の CPython ライブラリには、文字列をバイトに変換するための bytes()
関数が用意されています。
構文は以下の通りです。
bytes(input_string, 'utf-8' )
|
注:エンコードのためにUTF-8形式を使用します。
例:
inp = "Engineering Discipline"
print ( "Input String: )
print ( str (inp))
opt = bytes(inp, 'utf-8' )
print ( "String after getting converted to bytes: )
print ( str (opt))
print ( str ( type (opt)))
|
結果は以下の通りです。
Input String:
Engineering Discipline String after getting converted to bytes: b 'Engineering Discipline'
< class 'bytes' >
|
2. Pythonのencode()メソッドでStringをbyteに変換する
Pythonの encode()
メソッドは、Stringをbyte形式に変換するためにも使うことができます。
構文は以下の通りです。
input_string.encode( 'utf-8' )
|
例:
inp = "Engineering Discipline"
print ( "Input String: )
print ( str (inp))
opt = inp.encode( 'utf-8' )
print ( "String after getting converted to bytes: )
print ( str (opt))
print ( str ( type (opt)))
|
結果は以下の通りです。
Input String:
Engineering Discipline String after getting converted to bytes: b 'Engineering Discipline'
< class 'bytes' >
|
Python のバイトを文字列に変換する
Pythonのbyteクラスには、Pythonのバイトを文字列に変換する decode()
メソッドが組み込まれています。
構文は以下の通りです。
string.decode( 'utf-8' )
|
例えば、以下の様になります。
inp = "Engineering Discipline"
print ( "Input String: )
print ( str (inp))
opt = inp.encode( 'utf-8' )
print ( "String after getting converted to bytes: )
print ( str (opt))
print ( str ( type (opt)))
original = opt.decode( 'utf-8' )
print ( "The decoded String i.e. byte to converted string: )
print ( str (original))
|
上の例では、まずencode()メソッドで入力文字列をバイトに変換しています。
その後、decode()メソッドでエンコードされた文字列を元の文字列に変換している。
結果は以下の通りです。
Input String:
Engineering Discipline String after getting converted to bytes: b 'Engineering Discipline'
< class 'bytes' >
The decoded String i.e. byte to converted string: Engineering Discipline |
この記事もチェック:Pythonでtitleメソッドを使って小文字と大文字を変換する方法
Pandasのバイトを文字列に変換
Pandasモジュールには、Series.str.decode()`メソッドがあり、エンコードされたデータ(bytes形式)をString形式に変換することができます。
構文は以下の通りです。
input_string.decode(encoding = 'UTF-8' )
|
例えば、以下の様になります。
import pandas
inp = pandas.Series([b "b'Jim'" , b "b'Jonny'" , b "b'Shawn'" ])
print ( "Encoded String:" )
print (inp)
opt = inp. str .decode(encoding = 'UTF-8' )
print ( " )
print ( "Decoded String:" )
print (opt)
|
上の例では、データがエンコードされていると仮定しています。
さらに、そのデータに対して操作を行う。
結果は、以下の通りになります。
Encoded String: 0 b "b'Jim'"
1 b "b'Jonny'"
2 b "b'Shawn'"
dtype: object
Decoded String: 0 b 'Jim'
1 b 'Jonny'
2 b 'Shawn'
dtype: object
|
まとめ
この記事では、Pythonの文字列をバイトに変換する方法と、その逆のエンコードとデコードの概念について理解しました。