はじめに
JSON (JavaScript Object Notation) は、データ交換のフォーマットとして非常に広く使われています。Pythonを使ってJSON形式のデータを扱う場面も多く、データの読み込み、書き込み、そして加工が必要となることがよくあります。本記事では、Pythonの標準ライブラリを使用してJSONデータを操作する基本的な方法から、少し発展的な応用例までを解説します。
JSONデータの読み込み
PythonでJSONデータを読み込む基本
まず、PythonでJSONデータを扱うためにはjson
ライブラリをインポートします。このライブラリには、JSONデータをPythonの辞書やリストに変換するためのload()
およびloads()
メソッドが用意されています。
ファイルから読み込む
load()
はファイルからJSONデータを直接読み込む際に使用します。例えば、次のようなdata.json
というファイルがあるとします。
data.json
{
"name": "John",
"age": 30,
"city": "New York"
}
このJSONファイルをPythonで読み込むには以下のコードを使用します。
import json
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
このコードを実行すると、Pythonの辞書としてデータが取得されます。
{'name': 'John', 'age': 30, 'city': 'New York'}
文字列から読み込む
loads()
を使用すると、JSON形式の文字列をPythonのデータ構造に変換できます。
import json
json_string = '{"name": "Jane", "age": 25, "city": "Los Angeles"}'
data = json.loads(json_string)
print(data)
これで、文字列から直接Python辞書に変換できます。
JSONデータの書き込み
PythonでJSONデータを書き込む基本
JSONデータを書き込む際は、dump()
メソッドやdumps()
メソッドを使います。
ファイルに書き込む
Pythonの辞書やリストをJSON形式でファイルに書き出す場合は、dump()
を使用します。
import json
data = {
"name": "Alice",
"age": 28,
"city": "San Francisco"
}
with open('output.json', 'w') as file:
json.dump(data, file)
このコードを実行すると、output.json
というファイルにJSON形式でデータが書き込まれます。
文字列として書き出す
dumps()
メソッドを使うと、Pythonの辞書やリストをJSON形式の文字列として書き出すことができます。
import json
data = {
"name": "Bob",
"age": 22,
"city": "Chicago"
}
json_string = json.dumps(data)
print(json_string)
JSONデータの整形
インデントをつけて見やすく書き出す
データを見やすくするために、indent
パラメータを使用して整形することが可能です。インデントはスペースの数を指定でき、通常は2または4を指定します。
import json
data = {
"name": "Charlie",
"age": 35,
"city": "Boston"
}
json_string = json.dumps(data, indent=4)
print(json_string)
JSONデータの加工と応用
JSONデータを使用する実務の場面では、データの加工が必要になる場合もあります。以下に、よくあるケースをいくつか紹介します。
辞書の特定のキーの値を変更する
例えば、以下のようなJSONデータのage
フィールドを更新したい場合のコードは次の通りです。
data = {
"name": "Daisy",
"age": 20,
"city": "Seattle"
}
# ageの値を変更
data['age'] = 21
# 結果を表示
print(data)
JSONデータにコメントを追加する方法
Pythonのjson
ライブラリは、標準のJSON形式ではコメントをサポートしていません。しかし、代替方法として以下のような手法があります。
1. データとしてコメントを残す
コメントをJSONのデータの一部として残しておく方法です。
data = {
"_comment": "This data represents a user's information.",
"name": "Eve",
"age": 29,
"city": "Denver"
}
2. JSONC形式でコメントを使う
もし開発環境や他のツールがJSONC (コメント付きJSON)をサポートしている場合は、コメントをそのまま記載できます。
{
// ユーザー名
"name": "Frank",
// ユーザーの年齢
"age": 40,
"city": "Houston"
}
まとめ
この記事では、PythonでJSONファイルを読み込む方法、書き込む方法、そしてデータを加工する方法について解説しました。Pythonのjson
ライブラリを使用すれば、簡単にデータを読み書きでき、また応用的なデータ操作も可能です。JSONファイルを取り扱う機会がある方は、ぜひ実際に手を動かしながら試してみてください。