目次
Pythonの他のすべての読み取り操作と同様に、withステートメントはjson.load()メソッドでjsonファイルを読み取ることができます。
次のコードスニペットを検討してください:
例:pythonオブジェクトをjson.dump()
例:json.loadsを使用してJSONオブジェクトをPython辞書に変換します()
PythonでJSONを美しく印刷する方法は?
ホームページ バックエンド開発 Python チュートリアル PythonでJSONファイルを使用して作業します

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

Feb 16, 2025 am 09:47 AM

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という名前のファイルに保存されていると仮定します。
{
    "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"
        }
    ]
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

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ファイルを読み取ることができます。

次のコードの例を参照してください:

以下は、上記のコードの出力です。
{
    "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"
        }
    ]
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
上記のコードでは、employee.jsonファイルを読み取りモードで開きます。 json.load()メソッドは、JSONデータを従業員_Dict変数に保存されているPython辞書にデコードします。

jsonをpython
import json

with open('employee.json', 'r', encoding='utf-8') as file_object:
    employee_dict = json.load(file_object)
    print(employee_dict)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
のファイルに書き込む方法

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辞書:

を作成します
{
    "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"
        }
    ]
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

辞書をJSONデータとしてエンコードし、ファイルに書き込みましょう:

import json

with open('employee.json', 'r', encoding='utf-8') as file_object:
    employee_dict = json.load(file_object)
    print(employee_dict)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
上記の例では、辞書、ファイルポインター、およびインデントパラメーターを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があることがわかります。
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)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

JSONをPython Dictionary(Deserialization)に変換する方法
json.dump(obj, fp, indent)
ログイン後にコピー
ログイン後にコピー

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があります。他のパラメーターは変更されていません。

いくつかのパラメーターの説明:
json.dumps(obj, indent)
ログイン後にコピー
ログイン後にコピー
import json

subject = {
    "name": "Biology",
    "teacher": {"name": "Nana Ama", "sex": "female"},
    "students_size": 24,
    "elective": True,
    "lesson days": ["Tuesday", "Friday"],
}
ログイン後にコピー

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データをデコードしましょう。この例を継続する前に、リクエストモジュールをインストールする必要があります:

{
    "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"
        }
    ]
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
以下は、上記のコードの出力です。

上記のPythonコードでは、JSONフォーマットされた文字列を返すエンドポイントから応答を取得します。 json.loads()メソッドにパラメーターとして応答を渡し、Python辞書にデコードします。

import json

with open('employee.json', 'r', encoding='utf-8') as file_object:
    employee_dict = json.load(file_object)
    print(employee_dict)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

結論

最新の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を読む方法は?

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)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
json.load()関数を使用して、ファイルからjsonデータを読み取ることができます。例は次のとおりです。

このコードでは、json.load()でファイルを読み取り、JSONデータをPythonオブジェクトに変換します。

JSONをPythonのファイルに書き込む方法は?

json.dump()関数を使用して、jsonデータをファイルに書き込むことができます。例は次のとおりです。
json.dump(obj, fp, indent)
ログイン後にコピー
ログイン後にコピー

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

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

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

json.dumps(obj, indent)
ログイン後にコピー
ログイン後にコピー
このコードでは、インデントパラメーターは、インデントとして使用するスペースの数を指定し、出力を読みやすくします。

JSONで複雑なPythonオブジェクトを処理する方法は?

JSONモジュールは、デフォルトでは単純なPythonオブジェクトのみを処理できます。カスタムクラスのような複雑なオブジェクトの場合、オブジェクトのシリアル化方法を伝える関数を提供する必要があります。例は次のとおりです。

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

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

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

このコードでは、json.loads()でjson文字列をPython辞書に変換します。その後、内容を調査して内容を調査できます。
import json

with open('employee.json', 'r', encoding='utf-8') as file_object:
    employee_dict = json.load(file_object)
    print(employee_dict)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

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を使用する方法は?

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)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
リクエストライブラリを使用すると、JSONデータを使用してHTTPリクエストを簡単に送信し、JSON応答を処理できます。例は次のとおりです。

このコードでは、requests.post()では、jsonデータを使用してpostリクエストを送信し、response.json()はjson応答を解析します。

以上がPythonでJSONファイルを使用して作業しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Apr 02, 2025 am 07:03 AM

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

See all articles