ホームページ >バックエンド開発 >Python チュートリアル >PythonでJSONファイルを使用して作業します
json:包括的なガイド
JSON(JavaScriptオブジェクト表記)は、クライアントとサーバー間でデータを転送するために広く使用されている言語に依存しないデータ交換形式です。 Pythonは、「JSON」と「SimpleJson」が最も人気がある複数のモジュールを介してJSONをサポートしています。
Pythonの組み込み「JSON」モジュールは、JSONファイルを読み書きする方法を提供します。 「json.load()」メソッドは、ファイルからjsonデータを読み取るために使用され、 "json.dump()"メソッドはjsonデータをファイルに書き込むために使用されます。
Pythonオブジェクトは、「json.dump()」または「json.dumps()」メソッドを使用して、シリアル化プロセスを介してjson形式に変換できます。代わりに、JSONデータは、「json.load()」または「json.loads()」メソッドを使用して、偏向プロセスを介してPythonオブジェクトに戻すことができます。
PythonおよびJSONデータ型には同等のものがあります。たとえば、Pythonの「DICT」はJSONの「オブジェクト」に相当しますが、Pythonの「リスト」または「タプル」はJSONの「アレイ」に相当します。このマッピングにより、PythonとJSON間の変換プロセスが容易になります。
このチュートリアルでは、関連する例を使用して、PythonでJSONを読み、書き、解析する方法を学びます。また、JSONを処理するためのPythonの一般的なモジュールについても検討します。JSONは軽量のデータ交換形式です。これは、クライアントとサーバー間でデータを転送および受信するための一般的な形式です。ただし、そのアプリケーションと目的は、データの送信に限定されません。マシンはJSONデータを簡単に生成して解析できます。 JSONの頭字語は、名前が示すように、JavaScriptオブジェクト表記の略ですが、JavaScriptプログラミング言語のサブセットです。
JSONは標準化されたデータ交換形式であり、言語に依存しません。ほとんどすべてのプログラミング言語は、何らかの形でそれをサポートしています。次の構造があります
左側に左ブレースがあり、右側に右ブレースがあります。
将来のコードの例の目的のために、上記のJSONはemploye.jsonという名前のファイルに保存されていると仮定します。
<code class="language-json">{ "name": "Chinedu Obi", "age": 24, "country": "Nigeria", "languages": [ "Igbo", "English", "Yoruba" ], "marital status": "single", "employee": true, "experience": [ { "title": "Frontend Engineering Intern", "company": "Andela" }, { "title": "Frontend Engineer", "company": "Paystack" } ] }</code>jsonデータ型
JSONオブジェクトを使用する場合、PythonはJSONデータ型を同等のものに変換し、その逆も同様です。次の表は、Pythonデータ型とJSON同等物を示しています。
python
のJSONモジュールとSimpleJsonモジュールの違いJSONをエンコードおよびデコードするためのPythonにはいくつかのモジュールがあります。最も人気のある2つのモジュールは、JSONとSimpleJsonです。 JSONモジュールは、Python標準ライブラリに組み込みのパッケージです。つまり、インストールせずに直接使用できます。
SimpleJsonモジュールは、JSONをエンコードおよびデコードするための外部Pythonモジュールです。これは、Python 2.5とPython 3.3と逆方向に互換性があるオープンソースパッケージです。また、高速で、シンプルで、正しく、スケーラブルです。SimpleJsonは、JSONよりも最新の最適化により、より頻繁に更新され、より速くなります。レガシープロジェクトで2.6未満の古いPythonを使用している場合、SimpleJsonが最善の策です。
このチュートリアルでは、JSONモジュールに固執します。
pythonでJSONファイルを読み書きする方法 Pythonでプログラミングする場合、JSONデータ形式に遭遇することがよくあり、JSONデータとファイルの読み取り方法を理解することが重要です。 JSONファイルの読み取りと書き込みに役立つPythonでのファイル処理の事前に理解されています。
python
でJSONファイルを読み取る方法次のコードの例を参照してください:
以下は、上記のコードの出力です。
<code class="language-json">{ "name": "Chinedu Obi", "age": 24, "country": "Nigeria", "languages": [ "Igbo", "English", "Yoruba" ], "marital status": "single", "employee": true, "experience": [ { "title": "Frontend Engineering Intern", "company": "Andela" }, { "title": "Frontend Engineer", "company": "Paystack" } ] }</code>上記のコードでは、employee.jsonファイルを読み取りモードで開きます。 json.load()メソッドは、JSONデータを従業員_Dict変数に保存されているPython辞書にデコードします。
jsonをpython
<code class="language-python">import json with open('employee.json', 'r', encoding='utf-8') as file_object: employee_dict = json.load(file_object) print(employee_dict)</code>のファイルに書き込む方法
PythonのファイルにJSONデータを書き込むこともできます。読み取り操作と同様に、withステートメントとjson.dump()メソッドを使用して、jsonデータをファイルに書き込みます。
ここでは、架空の母親に関するデータを含むPython辞書の母親を作成します。書き込みモードでMother.jsonを開きます。そのようなファイルがないため、ファイルが作成されます。 json.dump()メソッドは、指定されたファイルに書き込まれるJSON等価物として母変数に割り当てられたpython辞書をエンコードします。上記のコードを実行した後、JSONデータのmother.jsonファイルを含むフォルダーのルートディレクトリに表示されます。
<code>{'name': 'Chinedu Obi', 'age': 24, 'country': 'Nigeria', 'languages': ['Igbo', 'English', 'Yoruba'], 'marital status': 'single', 'employee': True, 'experience': [{'title': 'Frontend Engineering Intern', 'company': 'Andela'}, {'title': 'Frontend Engineer', 'company': 'Paystack'}]}</code>Python辞書をJSONに変換する方法
シリアル化とは、Pythonオブジェクト(ほとんどの場合辞書)をJSONフォーマットされたデータまたは文字列に変換するプロセスです。シリアル化すると、PythonタイプはJSON同等のものとしてエンコードされます。 JSONモジュールは、PythonオブジェクトをJSON形式にシリアル化するために、json.dump()とjson.dumps()の2つの方法を提供します。
json.dump()は、ファイルにPythonオブジェクトに相当するJSONを書き込むために使用されます。
json.dumps()( "s" with ")は、PythonオブジェクトをJSON形式の文字列に変換するために使用されます。
いくつかのパラメーターの説明:
Pythonオブジェクトを同等のJSONフォーマットデータにエンコードして、ファイルに書き込みます。
最初に、Python辞書:
を作成します<code class="language-json">{ "name": "Chinedu Obi", "age": 24, "country": "Nigeria", "languages": [ "Igbo", "English", "Yoruba" ], "marital status": "single", "employee": true, "experience": [ { "title": "Frontend Engineering Intern", "company": "Andela" }, { "title": "Frontend Engineer", "company": "Paystack" } ] }</code>
辞書をJSONデータとしてエンコードし、ファイルに書き込みましょう:
<code class="language-python">import json with open('employee.json', 'r', encoding='utf-8') as file_object: employee_dict = json.load(file_object) print(employee_dict)</code>上記の例では、辞書、ファイルポインター、およびインデントパラメーターをjson.dumpメソッドに渡します。これがコードの出力です。コードを実行した後、予想されるJSONデータを含むsubject.jsonファイルは、プロジェクトルートフォルダーにあります。
出力は、値が4のインデントパラメーターを追加したため、素晴らしい印刷物があります。
<code>{'name': 'Chinedu Obi', 'age': 24, 'country': 'Nigeria', 'languages': ['Igbo', 'English', 'Yoruba'], 'marital status': 'single', 'employee': True, 'experience': [{'title': 'Frontend Engineering Intern', 'company': 'Andela'}, {'title': 'Frontend Engineer', 'company': 'Paystack'}]}</code>
例:pythonオブジェクトをjson.dumps()
を使用してjson形式に変換します この例では、PythonオブジェクトをJSON文字列としてエンコードします。以前に主題辞書を作成したので、ここで再利用できます。以下は、上記のコードの出力です。
前述のように、
json.dumps()メソッドは、pythonオブジェクトをjson形式の文字列に変換するために使用されます。コンソールから、JSONデータに型strがあることがわかります。<code class="language-python">import json mother = { "name": "Asake Babatunde", "age": 28, "marital status": "Married", "children": ["Ayo", "Tolu", "Simi"], "staff": False, "next of kin": {"name": "Babatune Lanre", "relationship": "husband"}, } with open("mother.json", "w", encoding="utf-8") as file_handle: json.dump(mother, file_handle, indent=4)</code>JSONをPython Dictionary(Deserialization)に変換する方法
<code class="language-python">json.dump(obj, fp, indent)</code>
JSONの降下は、JSONオブジェクトを同等のPythonオブジェクトまたはPythonタイプにデコードすることです。 JSONモジュールが提供する2つのメソッド-JSON.LOAD()およびJSON.LOADS() - を使用して、JSONフォーマットされたデータをPythonオブジェクトに変換できます。
json.load()は、ファイルからJSONフォーマットされたデータを読み取るために使用されます。
json.loads()( "s" with ")は、json文字列をpython辞書に解析するために使用されます。
いくつかのパラメーターの説明:
<code class="language-python">json.dumps(obj, indent)</code>
<code class="language-python">import json subject = { "name": "Biology", "teacher": {"name": "Nana Ama", "sex": "female"}, "students_size": 24, "elective": True, "lesson days": ["Tuesday", "Friday"], }</code>
fp:read()やwrite()などのメソッドを使用したファイルポインター(オブジェクト)。
s:JSONドキュメントを含むSTR、バイト、またはBYTEARRAYインスタンス。
<code class="language-json">{ "name": "Chinedu Obi", "age": 24, "country": "Nigeria", "languages": [ "Igbo", "English", "Yoruba" ], "marital status": "single", "employee": true, "experience": [ { "title": "Frontend Engineering Intern", "company": "Andela" }, { "title": "Frontend Engineer", "company": "Paystack" } ] }</code>以下は、上記のコードの出力です。
上記のPythonコードでは、JSONフォーマットされた文字列を返すエンドポイントから応答を取得します。 json.loads()メソッドにパラメーターとして応答を渡し、Python辞書にデコードします。
<code class="language-python">import json with open('employee.json', 'r', encoding='utf-8') as file_object: employee_dict = json.load(file_object) print(employee_dict)</code>
結論
最新のWeb開発では、JSONはサーバーとWebアプリケーション間でデータを交換するための実際の形式です。今日、REST APIエンドポイントはJSON形式でデータを返すため、JSONの使用方法を理解することが重要です。
Pythonには、JSONを読み、書き、解析するためのJSONやSimpleJsonなどのモジュールがあります。 JSONモジュールにはPython標準ライブラリが搭載されており、SimpleJsonは使用前にインストールする必要がある外部パッケージです。PythonでRESTFUL APIを構築したり、プロジェクトで外部APIを使用したりする場合、PythonオブジェクトをJSONにシリアル化し、それらをPythonに戻す必要があることがよくあります。この記事で示されている方法は、多くの一般的なプロジェクトで使用されています。手順は通常同じです。
(このチュートリアルのコードはgithubで見つけることができます。)
Python(FAQ) のJSONについての
FAQ PythonでJSONを解析する方法は?
JSONモジュールのため、PythonでJSONを解析することは簡単なプロセスです。 json.loads()関数を使用してjson文字列を解析できます。例は次のとおりです。PythonオブジェクトをJSONに変換する方法は?
<code>{'name': 'Chinedu Obi', 'age': 24, 'country': 'Nigeria', 'languages': ['Igbo', 'English', 'Yoruba'], 'marital status': 'single', 'employee': True, 'experience': [{'title': 'Frontend Engineering Intern', 'company': 'Andela'}, {'title': 'Frontend Engineer', 'company': 'Paystack'}]}</code>
jsonモジュールは、pythonオブジェクトをjson文字列に変換するjson.dumps()関数を提供します。例は次のとおりです。
PythonのファイルからJSONを読む方法は?
<code class="language-python">import json mother = { "name": "Asake Babatunde", "age": 28, "marital status": "Married", "children": ["Ayo", "Tolu", "Simi"], "staff": False, "next of kin": {"name": "Babatune Lanre", "relationship": "husband"}, } with open("mother.json", "w", encoding="utf-8") as file_handle: json.dump(mother, file_handle, indent=4)</code>json.load()関数を使用して、ファイルからjsonデータを読み取ることができます。例は次のとおりです。
このコードでは、json.load()でファイルを読み取り、JSONデータをPythonオブジェクトに変換します。
json.dump()関数を使用して、jsonデータをファイルに書き込むことができます。例は次のとおりです。
<code class="language-python">json.dump(obj, fp, indent)</code>
このコードでは、json.dump()では、jsonデータとしてファイルにpythonオブジェクトを書き込みます。
json.dumps()関数は、jsonを美しく印刷するオプションを提供します。例は次のとおりです。
<code class="language-python">json.dumps(obj, indent)</code>このコードでは、インデントパラメーターは、インデントとして使用するスペースの数を指定し、出力を読みやすくします。
JSONで複雑なPythonオブジェクトを処理する方法は?
<code class="language-json">{ "name": "Chinedu Obi", "age": 24, "country": "Nigeria", "languages": [ "Igbo", "English", "Yoruba" ], "marital status": "single", "employee": true, "experience": [ { "title": "Frontend Engineering Intern", "company": "Andela" }, { "title": "Frontend Engineer", "company": "Paystack" } ] }</code>このコードでは、Encode_Person関数を使用して、人オブジェクトをシリアル化可能な形式に変換します。
JSONを未知の構造で解析する方法は?
このコードでは、json.loads()でjson文字列をPython辞書に変換します。その後、内容を調査して内容を調査できます。
<code class="language-python">import json with open('employee.json', 'r', encoding='utf-8') as file_object: employee_dict = json.load(file_object) print(employee_dict)</code>
Pythonで大規模なJSONファイルを処理する方法は?
大規模なJSONファイルの場合、すべてのデータを一度にメモリにロードする代わりにJSONデータをストリーミングできるIJSONパッケージを使用できます。例は次のとおりです。PythonでJSONエラーを処理する方法は?
<code>{'name': 'Chinedu Obi', 'age': 24, 'country': 'Nigeria', 'languages': ['Igbo', 'English', 'Yoruba'], 'marital status': 'single', 'employee': True, 'experience': [{'title': 'Frontend Engineering Intern', 'company': 'Andela'}, {'title': 'Frontend Engineer', 'company': 'Paystack'}]}</code>
JSONモジュールが無効なJSONに遭遇すると、JSondeCodeErrorが発生します。このエラーをキャッチして、適切に処理できます。例は次のとおりです。
PythonでHTTPリクエストでJSONを使用する方法は?
<code class="language-python">import json mother = { "name": "Asake Babatunde", "age": 28, "marital status": "Married", "children": ["Ayo", "Tolu", "Simi"], "staff": False, "next of kin": {"name": "Babatune Lanre", "relationship": "husband"}, } with open("mother.json", "w", encoding="utf-8") as file_handle: json.dump(mother, file_handle, indent=4)</code>リクエストライブラリを使用すると、JSONデータを使用してHTTPリクエストを簡単に送信し、JSON応答を処理できます。例は次のとおりです。
このコードでは、requests.post()では、jsonデータを使用してpostリクエストを送信し、response.json()はjson応答を解析します。
以上がPythonでJSONファイルを使用して作業しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。