[Python] jsonモジュールの使い方

JSON(JavaScript Object Notation)は、Webアプリケーションでよく使用される軽量のデータ交換フォーマットです。PythonのJSONモジュールは、PythonオブジェクトとJSONデータの間で相互変換を可能にします。Pythonの辞書オブジェクトをJSON形式にエンコードする方法、そしてJSON形式の文字列をPythonオブジェクトにデコードする方法を説明します。

目次

JSONデータのエンコード

以下は、Pythonの辞書オブジェクトをJSON形式の文字列にエンコードする方法です。

import json

# Pythonの辞書オブジェクト
person = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# JSON形式の文字列にエンコード
person_json = json.dumps(person)

# エンコードされたJSONデータのタイプを出力
print(type(person_json)) # <- <class 'str'> が出力される

# エンコードされたJSONデータを出力
print(person_json) # <- {"name": "John", "age": 30, "city": "New York"}

上記の例では、 json.dumps() 関数を使用して、Pythonの辞書オブジェクト person をJSON形式の文字列に変換しました。person_json 変数に代入されたJSON形式の文字列を print() 関数で出力することで、エンコードされたJSONデータを確認できます。

JSONデータのデコード

以下は、JSON形式の文字列をPythonオブジェクトにデコードする方法です。

import json

# JSON形式の文字列
person_json = '{ "name": "John", "age": 30, "city": "New York" }'

# JSON形式の文字列をPythonオブジェクトにデコード
person = json.loads(person_json)

# デコードされたPythonオブジェクトのタイプを出力
print(type(person)) # <- <class 'dict'>

# デコードされたPythonオブジェクトを出力
print(person) # <- {'name': 'John', 'age': 30, 'city': 'New York'}

# Pythonオブジェクトから要素を取得して出力
print(person['age']) # <- 30

上記の例では、 json.loads() 関数を使用して、JSON形式の文字列 person_json をPythonの辞書オブジェクト person に変換しました。person 変数に代入されたPythonオブジェクトを print() 関数で出力することで、デコードされたPythonオブジェクトを確認できます。

JSONファイルの読み込み

json.load() 関数を使用することで、JSON形式のファイルをPythonオブジェクトに変換できます。例えば、以下のように使用します。

{ "name": "John", "age": 30, "city": "New York" }
import json

with open('sample03.json') as f:
    data = json.load(f)

# 読み込んだデータのタイプを表示
print(type(data)) # <- <class 'dict'>

# 読み込んだデータ内容を表示
print(data) # <- {'name': 'John', 'age': 30, 'city': 'New York'}

# 読み込んだデータの値を取得
print(data['city']) # <- New York

上記の例では、 example.json ファイルを開いて、 json.load() 関数でJSON形式のデータをPythonオブジェクトに変換し、 data 変数に代入しています。print() 関数で data 変数を出力することで、JSONファイルの中身を確認できます。

json.load() と json.loads() の使い分けについては下記ページで記載しています。よかったらそちらも参考にしてみてください。

JSONファイルの書き込み

json.dump() 関数を使用することで、PythonオブジェクトをJSON形式のファイルに書き込むことができます。例えば、以下のように使用します。

import json

person = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

with open('sample04.json', 'w') as f:
    json.dump(person, f)

実行結果として、以下のようなデータで、ファイル名「sample04.json」として出力されます。

{ "name": "John", "age": 30, "city": "New York" }

上記の例では、 person 辞書オブジェクトを person.json ファイルに書き込んでいます。ファイルを開くモードには、 w を指定しているため、既存のファイルがある場合には上書きされます。もし、ファイルを新規作成する場合には、 x モードを使用することができます。

まとめ

以上が、JSONモジュールの基本的な使い方となります。JSONデータのエンコードやデコード、ファイルの読み込みや書き込みは、PythonでJSONデータを扱う際に非常に重要な操作となります。JSONモジュールの他にも、 simplejsonujson などの高速なJSON処理を提供するライブラリもありますので、必要に応じて使用することができます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次