Python でファイルに JSON を書き込む

Vaibhav Vaibhav 2022年4月14日
Python でファイルに JSON を書き込む

JSON は軽量で人間が読める形式のファイル形式であり、業界で頻繁に使用されています。JSON は JavaScript Object Notation の略です。名前が示すように、JSON は Web 開発者の間で非常に人気があり、サーバーまたは他のアプリケーションとの間でデータを送受信するために Web アプリケーションで頻繁に使用されます。

Python には多くの組み込みパッケージまたはモジュールが付属しており、インターネットを介して使用できる多くの外部モジュールがあります。興味深いことに、JSON データを処理するための組み込みモジュール json もあります。

Python では、JSON は 2つの方法で表すことができます。まず、文字列として。JSON 文字列は次のようになります。

jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'

JSON を文字列として表す場合は、キーと文字列値をラップするために二重引用符("")のみを使用するようにしてください。JSON は一重引用符をサポートしておらず、一重引用符が使用されている場合はエラーをスローします。

2 番目の方法は、Python オブジェクト、または一般に Python ディクショナリとして知られているオブジェクトを使用することです。JSON と同様の構文を持っています。

Python 辞書の形式での JSON の表現は次のようになります。

jsonObject = {
    "name": "DelftStack",
    "email": "DelftStack@domain.com",
    "age": 20,
    "country": "Netherlands",
    "city": "Delft",
}

繰り返しになりますが、二重引用符のみを使用するようにしてください。

Python の json モジュールを使用してファイルに JSON を書き込む

JSON を文字列の形式で格納する変数があるとします。したがって、JSON ファイルに書き込むには、次のコードを使用できます。

import json

fileName = "my-data.json"
jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'
jsonString = json.loads(jsonString)

file = open(fileName, "w")
json.dump(jsonString, file)
file.close()

まず、json モジュールをインポートしました。次に、JSON ファイル名と JSON 文字列自体を 2つの変数に格納しました。次に、書き込みモードで選択した名前で新しいファイルを作成して開きます。

次に、json モジュールの loads 関数を使用して、JSON 文字列を Python 辞書に変換し、ファイルに書き込みます。この関数は有効な JSON 文字列を受け入れ、それを Python 辞書に変換します。

この関数に無効な文字列が指定された場合、json.decoder.JSONDecodeError エラーがスローされることに注意してください。したがって、正しい文字列を渡すか、エラー処理に try-except-finally ブロックを使用するようにしてください。

次に、json モジュールが提供する dump() メソッドを使用します。このメソッドは、Python ディクショナリとファイル記述子をパラメータとして受け入れ、ディクショナリのデータをファイルに書き込みます。

dump() メソッドは、ファイルがバイナリ形式で開かれていない場合にのみ機能します。つまり、"wb""rb"が機能せず、TypeError が発生します。

最後に、ファイルを閉じて、プログラムを終了します。プログラムで定義した名前の JSON ファイルが現在のディレクトリに作成されます。

同じ名前で同じ拡張子のファイルが作業ディレクトリに存在する場合、そのファイルの内容は上書きされます。

ここで、Python オブジェクトまたは Python 辞書を JSON ファイルに書き込みたいとします。その場合は、次のコードスニペットを参照してください。

import json

fileName = "my-data.json"
jsonObject = {
    "name": "DelftStack",
    "email": "DelftStack@domain.com",
    "age": 20,
    "country": "Netherlands",
    "city": "Delft",
}

file = open(fileName, "w")
json.dump(jsonObject, file)
file.close()

この場合、すでに python オブジェクトまたはディクショナリがあり、上記で説明したように、dump() はディクショナリをパラメータとして受け入れ、ファイル記述子に書き込みます。そのため、書き込みモードでファイルを開き、dump() メソッドを使用してファイルにデータを書き込み、ファイルを閉じます。

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python JSON