ホームページ >バックエンド開発 >Python チュートリアル >PythonでJSONファイルを使用して作業します

PythonでJSONファイルを使用して作業します

Christopher Nolan
Christopher Nolanオリジナル
2025-02-16 09:47:09181ブラウズ

Working with JSON Files in Python, with Examples

Pythonの

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オブジェクトの断片です:

将来のコードの例の目的のために、上記の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ファイルを読み取る方法

Pythonの他のすべての読み取り操作と同様に、withステートメントはjson.load()メソッドで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形式の文字列に変換するために使用されます。

    次の構文に注意してください:
  • json.dump()メソッドにはパラメーターfpがあり、json.dumps()はそうではありません。

いくつかのパラメーターの説明:

  • OBJ:JSON形式にシリアル化されるPythonオブジェクト。
  • fp:read()やwrite()などのメソッドを使用したファイルポインター(オブジェクト)。
  • インデント:美しく印刷されたJSONデータのインデントレベルを示す非陰性整数または文字列。

例:pythonオブジェクトをjson.dump()

を使用して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()メソッドを使用してみましょう

以下は、上記のコードの出力です。

前述のように、

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辞書に解析するために使用されます。

  • 次の構文に注意してください:
json.dump()にはパラメーターfpがあり、json.dumps()にはパラメーターsがあります。他のパラメーターは変更されていません。

いくつかのパラメーターの説明:
<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インスタンス。

  • 例:json.load()
  • を使用してJSONオブジェクトをPythonオブジェクトに変換します
  • 以下は、学生という名前の新しいjsonファイルの内容です。
  • この例では、sustent.jsonファイルからJSONデータをPythonオブジェクトにデコードします。

以下は、上記のコードの出力です。

上記のコードスニペットでは、学生リストを含むJSONファイルが解析されています。 file_handleファイルからのjsonデータはjson.load()メソッドに渡され、それをPython辞書のリストにデコードします。次に、リストアイテムをコンソールに印刷します。

例:json.loadsを使用してJSONオブジェクトをPython辞書に変換します()

この例では、JSONPlaceHolderのAPIエンドポイントから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>
以下は、上記のコードの出力です。

上記の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文字列を解析できます。例は次のとおりです。

このコードでは、json.loads()でjson文字列をPython辞書に変換し、他の辞書と同じように対話できます。

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()関数を提供します。例は次のとおりです。

このコードでは、json.dumps()では、python辞書をjson文字列に変換します。

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をPythonのファイルに書き込む方法は?

json.dump()関数を使用して、jsonデータをファイルに書き込むことができます。例は次のとおりです。
<code class="language-python">json.dump(obj, fp, indent)</code>

このコードでは、json.dump()では、jsonデータとしてファイルにpythonオブジェクトを書き込みます。

PythonでJSONを美しく印刷する方法は?

json.dumps()関数は、jsonを美しく印刷するオプションを提供します。例は次のとおりです。

<code class="language-python">json.dumps(obj, indent)</code>
このコードでは、インデントパラメーターは、インデントとして使用するスペースの数を指定し、出力を読みやすくします。

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>
このコードでは、Encode_Person関数を使用して、人オブジェクトをシリアル化可能な形式に変換します。

JSONを未知の構造で解析する方法は?

事前にJSONデータの構造がわからない場合でも、Pythonオブジェクトに解析して検討できます。例は次のとおりです。

このコードでは、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パッケージを使用できます。例は次のとおりです。

このコードでは、ijson.items()では、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モジュールが無効なJSONに遭遇すると、JSondeCodeErrorが発生します。このエラーをキャッチして、適切に処理できます。例は次のとおりです。

このコードでは、Try/を除くBlockが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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。