Python
 Computer >> コンピューター >  >> プログラミング >> Python

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)

  1. Pythonを使用して文字列をJSONに変換する方法は?

    json.loads()を使用してJSON文字列を辞書に変換します。このメソッドは、有効なjson文字列を受け入れ、すべての要素にアクセスできる辞書を返します。たとえば、 >>> import json >>> s = '{"success": "true", "status": 200, "message": "Hello"}' >>> d = json.loads(s) >>> print d["

  2. PythonでJSONを解析する方法

    PythonでJSONを解析するにはどうすればよいですか。まず、json.load()メソッドを使用してJSONファイルをロードします。結果はPython辞書です。その後、辞書メソッドを使用してフィールドにアクセスできます。 JSONは軽量のデータ交換形式です。 JSONファイルまたはJSON応答から情報を抽出するには、データを解析する必要があります。 PythonでJSONを解析する この例では、次のJSONを使用します。 { store:{ book:[ { category:reference, a