PythonでのJSONフォーマット
JSON(Java Script Object Notation)は軽量で、広く受け入れられているデータ交換形式です。 PythonのJSONフォーマット技術を使用して、JSON文字列をPythonオブジェクトに変換したり、PythonオブジェクトをJSON文字列に変換したりできます。
これらの機能を使用するには、Pythonのjsonモジュールを使用する必要があります。 jsonモジュールにはPython標準ライブラリが付属しています。したがって、最初にインポートする必要があります。
import json
PythonオブジェクトをJSON文字列に変換する
jsonモジュールには、PythonオブジェクトをJSON文字列に変換するdump()やdumps()などのメソッドがあります。 dump()メソッドは2つの引数を取ります。最初の引数はオブジェクトで、2番目の引数はファイルオブジェクトです。このメソッドは、オブジェクトをJSON形式のストリームとしてシリアル化します。 オブジェクトをファイルします。同様に、dumps()メソッドは1つの引数のみを取ります。引数はオブジェクトです。オブジェクトをJSON文字列に変換します 。
サンプルコード
import json from io import StringIO str_io_obj = StringIO() #Use JSON Dump to make StringIO json.dump(["India", "Australia", "Brazil"], str_io_obj) print('StringIO Object value: ' + str(str_io_obj.getvalue())) my_json = { "name" : "Kalyan", "age" : 25, "city" : 'Delhi' } print(json.dumps(my_json, indent=4))
出力
StringIO Object value: ["India", "Australia", "Brazil"] { "name": "Kalyan", "age": 25, "city": "Delhi" }
JSON文字列をPythonオブジェクトに変換する
この場合、JSON文字列を逆シリアル化します。 2つの異なる方法があります。これらはload()とloads()です。これらのメソッドは両方とも、JSONファイルを引数として取ります。 load()はファイルオブジェクトデータからPythonオブジェクトに変換し、loads()は文字列型データから変換します。
サンプルコード
import json from io import StringIO str_io_obj = StringIO('["xyz", "abc", "xyz", "pqr"]') #load from StringIO print('Load: ' + str(json.load(str_io_obj))) print('String to Json: ' + str(json.loads('{"xyz" : 1, "abc" : 2, "xyz" : 3, "pqr" : 4}')))
出力
Load: ['xyz', 'abc', 'xyz', 'pqr'] String to Json: {'xyz': 3, 'abc': 2, 'pqr': 4}
PythonのJSONエンコーダーおよびデコーダークラス
JSONEncoderクラスは、PythonオブジェクトをJSON形式に変換するために使用されます。この例では、JSONEncoderを使用して複素数オブジェクトをJSON型オブジェクトとして変換する方法を示します。
サンプルコード
import json class Comp_Encoder(json.JSONEncoder): def default(self, comp_obj): if isinstance(comp_obj, complex): return [comp_obj.real, comp_obj.imag] return json.JSONEncoder.default(self, comp_obj) print(json.dumps(5+8j, cls=Comp_Encoder))
出力
[5.0, 8.0]
JSONDecoderクラスは逆のアクションを実行します。
サンプルコード
import json my_str = '{"Asim" : 25, "Priyesh" : 23, "Asim" : "28"}' #Decode JSON using the JSONDecoder print(json.JSONDecoder().decode(my_str)) print(json.JSONDecoder().raw_decode(my_str))
出力
{'Asim': '28', 'Priyesh': 23} ({'Asim': '28', 'Priyesh': 23}, 44)
-
Pythonを使用して文字列をJSONに変換する方法は?
json.loads()を使用してJSON文字列を辞書に変換します。このメソッドは、有効なjson文字列を受け入れ、すべての要素にアクセスできる辞書を返します。たとえば、 >>> import json >>> s = '{"success": "true", "status": 200, "message": "Hello"}' >>> d = json.loads(s) >>> print d["
-
PythonでJSONを解析する方法
PythonでJSONを解析するにはどうすればよいですか。まず、json.load()メソッドを使用してJSONファイルをロードします。結果はPython辞書です。その後、辞書メソッドを使用してフィールドにアクセスできます。 JSONは軽量のデータ交換形式です。 JSONファイルまたはJSON応答から情報を抽出するには、データを解析する必要があります。 PythonでJSONを解析する この例では、次のJSONを使用します。 { store:{ book:[ { category:reference, a