Pythonでbytes型のJSONデータを扱う方法について解説します。Pythonのjson
モジュールのloads
関数を使用すると、文字列やbytes型のJSONデータをPythonのオブジェクトに変換することができます。
まず、bytes型のJSONデータがあるとします。
my_bytes_value = b'[{\\'Date\\': \\'2016-05-21T21:35:40Z\\', \\'CreationDate\\': \\'2012-05-05\\', \\'LogoType\\': \\'png\\', \\'Ref\\': 164611595, \\'Classe\\': [\\'Email addresses\\', \\'Passwords\\'],\\'Link\\':\\'[6](http://some_link.com)\\'}]'
このbytes型のデータを文字列に変換します。そのためには、decode
関数を使用します。
my_new_string_value = my_bytes_value.decode("utf-8")
次に、この文字列をPythonのオブジェクトに変換します。そのためには、json.loads
関数を使用します。
import json
my_json = json.loads(my_new_string_value)
しかし、このコードを実行すると、json.decoder.JSONDecodeError
が発生します。これは、JSONデータがシングルクォート(‘)で囲まれているためです。JSONデータはダブルクォート(“)で囲む必要があります。
したがって、bytes型のデータをデコードする前に、シングルクォートをダブルクォートに置き換える必要があります。
my_json = my_bytes_value.decode('utf8').replace("'", '"')
これで、bytes型のJSONデータをPythonのオブジェクトに変換することができます。
以上がPythonでbytes型のJSONデータを扱う方法になります。この方法を使えば、bytes型のJSONデータを簡単にPythonのオブジェクトに変換することができます。