PythonでJSONを解析して処理する方法

How Parse Process Json Python



JSONは、構造化された形式でサーバーとクライアント間でデータを送信するために使用されるJavaScriptのサブセットです。 JSONパッケージはPythonで構築されています。そのため、JSONパッケージをインポートすることでPythonスクリプトを使用して、JSONデータを簡単にエンコードおよびデコードできます。文字列、数値などのプリミティブデータ型と、リスト、オブジェクトなどの複合データ型がJSONでサポートされています。このチュートリアルでは、Pythonスクリプトを使用してJSONデータを解析および処理する方法を示します。

シリアル化と逆シリアル化

Pythonオブジェクトはシリアル化を使用してJSONオブジェクトに変換され、JSONオブジェクトは逆シリアル化を使用してPythonオブジェクトに変換されます。次の表は、シリアル化および逆シリアル化の際に、PythonオブジェクトがJSONオブジェクトに変換される方法またはその逆の方法を示しています。







JSON Python
NS NS
NS NS
ストリング ストリング
番号 番号
配列 リスト、タプル
物体 dict
ヌル なし

方法:



load():このメソッドは、JSONファイルからPythondictにデータをロードするために使用されます。
Loads():このメソッドは、JSON変数からPythondictにデータをロードするために使用されます。
dump():このメソッドは、PythonディクショナリからJSONファイルにデータをロードするために使用されます。
dumps():このメソッドは、PythonディクショナリからJSON変数にデータをロードするために使用されます。



Pythonを使用したJSONデータの読み取り

JSONデータは、Pythonスクリプトを使用して、さまざまな方法で解析および処理できます。このパートでは、さまざまなPythonの例を使用して、さまざまなタイプのJSONデータを解析する方法を示します。名前の付いた単純なjsonファイルを作成します student.json このチュートリアルのスクリプトをテストするには、次のデータを使用します。





[ {{「ID」 '1110978''名前' 「アリフ・アル・ラーズィー」'バッチ' 「3.4」'学期' 「8」
'デパートメント' 「CSE」}

{{「ID」 「2220998」'名前' 「ヌスラットファリア」'バッチ' 「2.3」'学期' 「9」
'デパートメント' 「BBA」}

{{「ID」 「1118934」'名前' 「エムランホセイン」'バッチ' '33''学期' '7'
'デパートメント' 「CSE」}

{{「ID」 '4448934''名前' 「レハナ・アクター」'バッチ' '41''学期' 「10」
'デパートメント' 「ENG」}

{{「ID」 '11107745''名前' 「サイーフ・アリ」'バッチ' '39''学期' 「5」
'デパートメント' 「CSE」}]

例1:JSONファイルをJSON形式で読み取って印刷する

名前の付いたPythonファイルを作成します json1.py 次のスクリプトを使用します。 JSONモジュールは、Pythonスクリプトを使用してJSONデータを読み取るために使用されます。 開いた() メソッドは読み取りに使用されます student.json ファイルと ロード() メソッドは、データを変数に格納するために使用されます。 データ。

輸入 JSONモジュール
輸入 json

#既存のJSONファイルを開くにとって変数へのロード
オープンで(('student.json')。fとして
データ=json。ロード((NS)。

#JSONデータを印刷する
印刷((データ)。

出力:



スクリプトの実行後、次の出力が表示されます。

例2:Pythondictを使用してJSONファイルからデータを読み取って解析する

JSONデータは任意のPython辞書変数に保存して、後で各プロパティ値を簡単に処理できます。名前の付いたPythonスクリプトを作成します json2.py 次のコードで。以前に作成されたjsonファイルがここで使用されます。ディクショナリにデータをロードした後、各レコードの各プロパティ値がプロパティ名を使用して出力されます。

輸入 jsonモジュール
輸入 json

#既存のjsonファイルを開くにとって変数へのロード
オープンで(('student.json''NS')。fとして
学生=json。ロード((NS)。

#オブジェクトの各プロパティを出力します
にとって学生の学生
印刷((学生['名前']'、'、学生['バッチ']'バッチ''、'、 学生['学期']
'学期''、'、学生['デパートメント']'デパートメント')。

出力:

スクリプトの実行後、次の出力が表示されます。

例3:JSONデータを解析する

JSONデータは、任意のJSON変数から解析できます。名前の付いたファイルを作成します json3.py 次のスクリプトを使用します。 JSONData ここでは、3つのプロパティのJSONデータを格納するように宣言されています。 load() ここでは、JSON変数からデータをロードするためにメソッドが使用されています。次に、各プロパティ名を持つ各プロパティ値は、ターミナルに1行ずつ出力されます。

輸入 jsonモジュール
輸入 json

#jsonデータを定義する
JSONData= '{' Java ':' 3 Credits '、' PHP ':' 2 Credits '、' C ++ ':' 3 Credits '}'

#jsonデータを変数にロードします
Storedata=json。負荷((JSONData)。

#繰り返しますにとってキーでデータを印刷するためのループ
にとってStoredataのval
印刷(('% NS' ((val、storedata[時間])。)。

出力:

スクリプトの実行後、次の出力が表示されます。

例4:JSONデータをPythonオブジェクトに解析する

このチュートリアルの前の3つの例では、JSONデータはPython辞書変数に格納されています。この例は、JSONデータを任意のPythonオブジェクトに保存する方法を示しています。名前の付いたファイルを作成します json4.py 次のスクリプトを使用します。ここ、 read_data クラスは、JSONデータをオブジェクトに格納するために使用されます。 JSONData 、変数は、クラスのオブジェクトを作成するときに使用されます。 JSONDataには3つのプロパティがあり、プロパティ名の値は次のとおりです。 PHP 出力として印刷されます。

輸入 JSONモジュール
輸入 json

#JSONデータを定義する
JSONData= '{' Java ':' 3 Credits '、' PHP ':' 2 Credits '、' C ++ ':' 3 Credits '}'

# 宣言するクラスJSONデータをPython辞書に保存する
クラスread_data((物体)。
def __init__((自己、jdata)。
self .__ dict__=json。負荷((jdata)。

#のオブジェクトを割り当てますクラス
p_object=read_data((JSONData)。

#特定のプロパティの値を出力します
印刷((p_object。PHP)。

出力:

「PHP」プロパティの値は「2クレジット」です。したがって、スクリプトの実行後、次の出力が表示されます。

例5:PythondictをJSONデータに変換する

JSONデータは、前の例のPythonディクショナリまたはオブジェクトに保存されますが、PythonディクショナリのデータはJSON変数に保存することもできます。名前の付いたファイルを作成します json5.py 次のスクリプトを使用します。データはディクショナリ変数に格納されます。 customerDict。 dumps() ここでは、メソッドを使用して、データをディクショナリ変数からJSON変数に変換します。 jsonObject 。次に、JSON変数の値が出力として出力されます。

輸入 JSONモジュール
輸入 json

#Python辞書を宣言する
customerDict= {{'名前' 「ジョン」'タイプ' 'ゴールド''年' 35 }

#データを辞書からJSONオブジェクトにロードする
jsonData=json。ダンプ((customerDict)。

#JSONオブジェクトを出力します
印刷((jsonData)。

出力:

スクリプトの実行後、次の出力が表示されます。

結論:

JSONデータ形式は、多くのプログラミング言語でサポートされています。このチュートリアルでは、JSONからPythonへの変換、およびPythonからJSONデータへの変換について、さまざまなPythonの例を使用して説明します。このチュートリアルを実行すると、PythonオブジェクトからJSONオブジェクトへ、またはその逆へのあらゆるタイプのデータ変換を実行できるようになります。