こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
JSONとは
JSON(JavaScript Object Notation)とは、JavaScriptのオブジェクト記法を用いたデータフォーマットです。
JSONはJavaScriptだけでなく、Python、Ruby、Java、PHP、C++など様々なプログラミング言語に対応しているため、JSON形式データを経由することにより、言語間でのデータ交換を容易に実現させることができます。
JSON形式データの見方
JSON形式のデータは、キー(Key)とバリュー(Value)の組み合わせを1つのデータセットと見立てて表現されます。記載時は{}で囲み、キー・バリュー間にはコロン(:)を記載します。またエラー防止の注意点として、JSONの文字列は必ずダブルクォート( ” )で囲むようにします。
{"Key1":Value1}
複数のキー・バリュー・ペアを記述する場合は下記のように表現します。
{"Key1":Value1, "Key2":Value2, "Key3":Value3}
JSONで記述可能なデータ形式
JSONで記述できるデータ形式は下記になります。
- 文字列
- 整数
- 浮動小数点数
- ブール値
- リスト
- 辞書
- null値
データ形式が全てJSONで保持されるわけではない点に注意しましょう。例えば、Pythonで保持可能なFileオブジェクトやCSVのReader等はJSONで保持できません。
【Python】jsonモジュール
Pythonのjsonモジュールとは、JSONデータの文字列とPythonの値の相互変換を実現できるモジュールです。
JSONデータをパースする
パースとは一言で「構文解析」を意味します。PythonでJSONデータをパースするとは、JSON形式のデータから必要なデータを取り出し、Pythonプログラムの中で利用できるよう変換することを指します。
ここで、JSON-Python間のデータの変換処理を行う際、下記二つのメソッドを用います。
メソッド名 | 概要 |
---|---|
json.loads() | JSONデータをPythonの値に変換 |
json.dumps() | Pythonの値をJSONデータに変換 |
実際にPythonコードを記載し、データ変換処理を体現してみましょう!
【Python実践】JSONデータを読み込む方法
JSONデータを読み込み、Python環境で値を取り扱う方法について解説します。本記事では以下2つの方法を解説します。
- JSONファイルを指定しデータ読込・Python値に変換する方法
- JSON形式の文字列データ読込・Python値に変換する方法
json.loads|JSONファイルを指定しデータ読込・Python値に変換
下記のJSONサンプルファイルを作成した上で、以下のPythonコードを実行してみましょう。
JSONサンプルデータ|sample.json
{
"1":{
"name":"Tanaka",
"Age":24,
"Address":"Tokyo",
"mail":null
},
"2":{
"name":"Sato",
"Age":30,
"Address":"Osaka",
"mail":"sample@abcd.com"
}
}
Pythonコード
import json
# JSONファイルがあるファイルパス
file_path = 'sample.json'
# Open関数でファイルをロード
with open(file_path) as f:
data = json.loads(f.read())
# 出力
print(data)
json.loads|JSON形式の文字列データを読込・Python値に変換
JSON形式データからPython値へ変換するには、json.loads
関数を用います。以下変換方法と出力結果を示します。
コード
import json
#JSONデータ
json_data = '{"name":"Tanaka","Age":24,"Country":"Japan","Registered":true,"mail":null}'
#値変換:JSON → Python
json_data_to_python_value = json.loads(json_data)
print(json_data_to_python_value)
出力結果
# json_data_to_python_valueの出力結果
# {'name': 'Tanaka',
# 'Age': 24,
# 'Country': 'Japan',
# 'Registered': True,
# 'mail': None}
json.loads関数の戻り値はPythonの辞書型です。辞書型は順序が保持されないため、出力値のキー・バリュー・ペアの順序は元のJSONと異なる場合があります。
【Python実践】JSONデータを書き出す・出力する方法
続いて、Python環境下で取り扱っている値をJSON形式のデータに変換する方法を解説します。
json.dumps|Pythonの値をJSONデータとして書き出す
Pythonの値からJSON形式データへの変換は、json.dumps
関数を用います。
以下変換方法と出力結果を示します。
コード
import json
#Pythonデータ
python_dict = {'Registered':True,'Age':25,'name':'Tanaka','mail':None}
#値変換:Python → JSON
json_data = json.dumps(python_dict)
print(json_data)
出力結果
# json_dataの出力結果
# '{"Registered": true, "Age": 25, "name": "Tanaka", "mail": null}'
JSONファイルを出力する
JSONファイルをエクスポートするには、次のようなコードを実行します。
import json
# Pythonデータ
python_dict = {'Registered':True,'Age':25,'name':'Tanaka','mail':None}
# 出力ファイル名
filename = 'json_file.json'
# JSONファイル形式としてエクスポート
with open(filename, 'w') as f:
json.dump(python_dict, f, ensure_ascii=False, indent=4)
【参考】Pythonでのデータ前処理・分析・可視化
当サイトではPythonを用いた「データ前処理手法」「データ分析」「グラフや表を用いた可視化」手法について幅広く解説しております。AI・機械学習にも応用できる内容となっておりますため、興味がある方は併せてご確認下さい。
Pythonを活用したデータ処理・分析手法一覧
【参考】Pythonとは・できること一覧
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら