【Python】JSONデータ読み込み・パース・文字列変換・書き込み方法|データ前処理コードの使い方徹底解説

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

PythonのWebアプリケーションを取り扱う際、JSON形式のデータはどのように変換処理するの?」本記事ではこの疑問に回答します。記事前半では、JSON形式のデータが用いられる意義を紹介します。後半部分はPythonの値とJSON形式データの相互変換方法について触れます。

目次

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とは・できること一覧

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
目次