PythonでJSONファイルの書き込み、読み込み、追加について

PythonでJSONファイルのの書き込み、読み込み、追加について、例文とJSONファイルの中の様子を交えて解説します。

目次

・JSONとは
・JSONファイルを操作する形、操作方法
書き込み
・json.dumpを使った書き込み
読み込み
・json.loadを使った読み込み
変換
・json.dumpsを使った変換
・json.loadsを使った変換
追加
withを使った書き込み、読み込み
・参考サイト

JSONとは

JSONとはJavaScript Object Notationという略で、訳すと「JavaScriptオブジェクトの記述方法」という意味になります。

また、JSONはPythonでいう辞書型みたいなキーとバリューからなるデータのことで、異なるプログラミング言語同士でのデータのやり取りができます。

※名前にJavaScriptと書いていますが、JavaScript以外でも書き込み、読み込みができます。

PythonとJavaScriptでJSONファイルのやり取りをした投稿がこちら↓
Pythonで作成したJSONファイルをJavascriptで読み込んで表示します

JSONファイルを操作する形、操作方法

JSONファイルを操作する形

import json

変数=open(“ファイル名”,”操作モード”)

json.操作方法(変数 or 変数、書き込むデータ)

変数.close()


JSONファイルを操作する形open()で指定したファイル名操作モード(“w”、”r”)でJSONファイルを開いて、そのファイル情報を変数に格納します。そして、その変数または変数書き込むデータを合わせたものに対して指定した操作方法を行い、それが終わればclose()でファイルを閉じます。
テキストファイルの操作とは違いJSONファイルの操作はimport jsonが必要になります。

close()がないと正常な操作が行われないです。
※”w”・・・書き込みモード
※”r”・・・読み込みモード

操作方法

json.dump
Pythonの辞書型データやリストなどをJSONファイルに書き込みます。書き込んだデータはJSON 形式の文字列に変換されます。

json.load
JSONファイルのデータをを読み込みます。読み込んだデータはPythonで扱える辞書型データやリストなどの形になります。

json.dumps
Pythonの辞書型データをJSON 形式の文字列に変換します。JSONファイルには書き込めないです。

json.loads
JSON形式の文字列をPythonの辞書型データに変換します。JSONファイルを読み込むことができないです。

書き込み

json.dumpを使った書き込み

プログラムの説明をします。

5行目はjson_fフォルダにj_py01.jsonが存在しないので、新規作成してからjson.dumpで辞書型データを書き込んでいます。

既にj_py01.jsonが存在する場合は、そのファイルに書かれてあるデータを削除して書き込みます(上書き)。

引数にindent=2をすることで、書き込む際に字下げをします。逆に、indentをしない場合はデータが横並びで書き込まれます。

JSONファイルに書き込まれたデータはJSON形式の文字列になるので、日本語は文字化けみたいになりますがjson.loadで読み込んで表示すると、日本語になります。

JSONファイルをメモ帳で開いた様子↓


複数の辞書型データを書き込むプログラム

プログラムの説明をします。

複数の辞書型データを書き込む場合はリストに入れて書き込みます。

JSONファイルをメモ帳で開いた様子↓

読み込み

json.loadを使った読み込み

プログラムの説明をします。

4~6行目はj_py01.jsonjson.loadで読み込んで、読み込んだデータを変数j_showに格納しています。

読み込む際にJSONファイルが存在しない場合はエラーがでます。

10行目のj_show[‘1001’]は辞書型データの取り出し方で、表示しています。

print文で表示した様子↓


複数の辞書型データを読み込むプログラム

プログラムの説明をします。

このプログラムで使うJSONファイルは、上のjson.dumpで書き込んだJSONファイルを読み込んでいます。

print文で3つの辞書型データを1回で表示することもできるのですが、見づらくなるのでfor文を使って1つずつ表示しています。

12行目のj_show[0][‘1001’]はリストの要素番号を指定してから、辞書型データを取り出しています。

print文で表示した様子↓

変換

json.dumpsを使った変換

プログラムの説明をします。

6行目はjson.dumpsでPythonの辞書型データをJSON 形式の文字列に変換します。

8行目のj_data[0]は文字列の中カッコ”{“を表示しています。辞書型データすべてが文字列になるので、j_data[0]にすると中カッコ”{“が取り出されます。

9行目は型を確認しています。

print文で表示した様子↓


●JSONファイルのデータを使って、json.dumpsを行います。

プログラムの説明をします。

7行目はjson.loadで読み込んだJSONファイルのデータを表示しています。

10行目はjson.loadで読み込んだJSONファイルのデータをjson.dumpsを使って、JSON 形式の文字列に変換しています。

このプログラムで使うJSONファイルは、上のjson.dumpで書き込んだJSONファイルを使っています。

print文で表示した様子↓

json.loadsを使った変換

プログラムの説明をします。

6行目はjson.dumpsでPythonの辞書型データをJSON形式の文字列に変換しています。

10行目はJSON形式の文字列をjson.loadsを使って、Pythonの辞書型データに変換しています。

print文で表示した様子↓

追加

JSONファイルにデータを追加する方法は

辞書型データをそのまま追加する方法辞書型データに追加する方法の2種類があると思うので、その2種類の追加方法について紹介した投稿がこちら「JSONファイルにデータを追加するPythonプログラムを紹介しますの投稿になります。

withを使った書き込み、読み込み

withを使った方法でもJSONファイルの書き込み、読み込みができます。
withを使う場合は.close()を書く必要がないので便利です

JSONファイルに書き込み

JSONファイルをメモ帳で開いた様子↓

JSONファイルの読み込み

print文で表示した様子↓

参考サイト

https://docs.python.org/ja/3/library/json.html