PythonでのJSONの基本
Pythonでは、json
モジュールを使用してJSONデータを操作することができます。このモジュールはPythonの標準ライブラリに含まれているため、追加のインストールは必要ありません。
JSONデータの読み込み
PythonでJSONデータを読み込むには、json.load()
またはjson.loads()
関数を使用します。json.load()
関数はファイルから、json.loads()
関数は文字列からJSONデータを読み込みます。
import json
# 文字列からJSONデータを読み込む
json_string = '{"name": "John", "age": 30, "city": "New York"}'
data = json.loads(json_string)
# ファイルからJSONデータを読み込む
with open('data.json', 'r') as f:
data = json.load(f)
JSONデータの書き出し
PythonでJSONデータを書き出すには、json.dump()
またはjson.dumps()
関数を使用します。json.dump()
関数はファイルに、json.dumps()
関数は文字列としてJSONデータを書き出します。
import json
data = {
"name": "John",
"age": 30,
"city": "New York"
}
# 文字列としてJSONデータを書き出す
json_string = json.dumps(data)
# ファイルにJSONデータを書き出す
with open('data.json', 'w') as f:
json.dump(data, f)
これらの基本的な操作を理解することで、PythonでJSONデータを効率的に扱うことができます。次のセクションでは、JSONからPythonへの変換について詳しく説明します。
JSONからPythonへの変換
Pythonのjson
モジュールを使用すると、JSON形式のデータをPythonのデータ型に簡単に変換することができます。具体的には、json.loads()
関数を使用します。
import json
# JSON文字列
json_string = '{"name": "John", "age": 30, "city": "New York"}'
# JSONからPythonへの変換
data = json.loads(json_string)
print(data) # {'name': 'John', 'age': 30, 'city': 'New York'}
print(type(data)) # <class 'dict'>
この例では、JSON形式の文字列がPythonの辞書に変換されています。JSONのキーは辞書のキーに、JSONの値は辞書の値に対応します。
また、JSONの配列はPythonのリストに、JSONの真偽値はPythonのTrue
/False
に、JSONのnull
はPythonのNone
に変換されます。
json_string = '{"numbers": [1, 2, 3], "flag": true, "value": null}'
data = json.loads(json_string)
print(data) # {'numbers': [1, 2, 3], 'flag': True, 'value': None}
これらの変換ルールを理解することで、JSONデータをPythonで効果的に扱うことができます。次のセクションでは、PythonからJSONへの変換について詳しく説明します。
PythonからJSONへの変換
Pythonのjson
モジュールを使用すると、Pythonのデータ型をJSON形式のデータに簡単に変換することができます。具体的には、json.dumps()
関数を使用します。
import json
# Pythonのデータ
data = {
"name": "John",
"age": 30,
"city": "New York"
}
# PythonからJSONへの変換
json_string = json.dumps(data)
print(json_string) # {"name": "John", "age": 30, "city": "New York"}
print(type(json_string)) # <class 'str'>
この例では、Pythonの辞書がJSON形式の文字列に変換されています。辞書のキーはJSONのキーに、辞書の値はJSONの値に対応します。
また、PythonのリストはJSONの配列に、PythonのTrue
/False
はJSONの真偽値に、PythonのNone
はJSONのnull
に変換されます。
data = {
"numbers": [1, 2, 3],
"flag": True,
"value": None
}
json_string = json.dumps(data)
print(json_string) # {"numbers": [1, 2, 3], "flag": true, "value": null}
これらの変換ルールを理解することで、PythonデータをJSON形式に効果的に変換することができます。次のセクションでは、JSONのフォーマット結果について詳しく説明します。
JSONのフォーマット結果
Pythonのjson
モジュールは、JSONデータを整形して出力する機能も提供しています。これは、人間が読みやすい形式でJSONデータを表示したい場合に便利です。
具体的には、json.dumps()
関数のindent
パラメータを使用します。このパラメータに整数を指定すると、その数値分のスペースでインデントされた形式でJSONデータが出力されます。
import json
data = {
"name": "John",
"age": 30,
"city": "New York"
}
# 整形してJSONデータを出力
json_string = json.dumps(data, indent=4)
print(json_string)
出力結果は以下のようになります。
{
"name": "John",
"age": 30,
"city": "New York"
}
このように、Pythonのjson
モジュールを使用すると、JSONデータを整形して出力することができます。これにより、大量のJSONデータを扱う際にも、データの構造を理解しやすくなります。次のセクションでは、Web APIからのJSONの解析について詳しく説明します。
Web APIからのJSONの解析
Web APIは、多くの場合、データをJSON形式で返します。Pythonのjson
モジュールとrequests
モジュールを使用すると、Web APIからのJSONデータを簡単に取得し、解析することができます。
まず、requests
モジュールを使用してWeb APIからデータを取得します。
import requests
response = requests.get('https://api.example.com/data')
次に、json()
メソッドを使用して、レスポンスをJSONデータに変換します。
data = response.json()
これで、data
はPythonの辞書またはリストとして扱うことができます。JSONデータの構造によりますが、通常は辞書のリストとなります。
for item in data:
print(item['name'])
このように、Pythonを使用してWeb APIからのJSONデータを簡単に取得し、解析することができます。これにより、Web APIが提供する大量のデータを効率的に扱うことが可能になります。次のセクションでは、さらに詳しくJSONの活用方法について説明します。