JSONファイルにデータを追加するPythonプログラムを紹介します
JSONファイルにデータを追加するPythonプログラムを例文ありで紹介します。
JSONファイルのデータはPythonの辞書型データと同じ形なので、追加するデータはPythonで作成した辞書型データを追加します。
JSONファイルにデータを追加する方法は
辞書型データをそのまま追加する方法と辞書型データに追加する方法の2種類があると思うので、その2種類について紹介します。
目次
・追加するJSONファイル
・辞書型データをそのまま追加する方法
・辞書型データに追加する方法
追加するJSONファイル
JSONファイル名はjs_py2.jsonです。
このJSONファイルにデータを追加していきます。
JSONファイルをメモ帳で開いた様子がこちら↓

Pythonで読み込んで表示した様子↓

メモ帳でJSONファイルを開くと日本語が文字化けみたいになっていますが、Pythonで読み込んで表示すると、ちゃんと日本語になります。
辞書型データをそのまま追加する方法
こちら↓の辞書型データを追加します。
{‘1001′:’True’,’1002′:’True’,’1003′:’False’}
辞書型データを追加するPythonプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import json #JSONファイルの読み込み js_r=open('json_f/js_py2.json','r') j_data=json.load(js_r)#データを取り出して、変数に入れています。 js_r.close() #辞書型データの追加 j_add={'1001':'True','1002':'True','1003':'False'} j_data.append(j_add) #JSONファイルに上書きしています js_r=open('json_f/js_py2.json','w') json.dump(j_data,js_r,indent=2) js_r.close() |
プログラムの説明をします。
4~6行目はJSONファイルを読み込んで、そのデータを変数j_dataに格納しています。
9,10行目は取り出したJSONのデータはリストの中に辞書型データが複数入っている状態なので、
append関数を使って{‘1001′:’True’,’1002′:’True’,’1003′:’False’}この辞書型データを追加しています。
13~15行目は前のJSONファイルのデータを消して、追加した新しいデータをJSONファイルに上書きしています。
JSONファイルをメモ帳で開いた様子がこちら↓

Pythonで読み込んで表示した様子↓

正常に辞書型データをそのまま追加できています。
辞書型データに追加する方法
「辞書型データをそのまま追加する方法」で使ったJSONファイルに追加していきます。
こちら{‘1001’: ‘一郎’, ‘1002’: ‘二郎’, ‘1003’: ‘三郎’}の辞書型データに
“1004”:”四郎” このデータを追加します。
辞書型データに追加するプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import json #JSONファイルの読み込み js_r=open('json_f/js_py2.json','r') j_data=json.load(js_r)#読み込んだデータを変数に入れる js_r.close() add_dic={}#ここに追加したデータを入れていきます。 n=0#何番目の辞書型データに追加するか決める jk=list(j_data[n].keys())#keyを取り出して、リストにします jv=list(j_data[n].values())#valueを取り出して、リストにします #追加データ key_add="1004" val_add="四郎" jk.append(key_add)#keyの追加 jv.append(val_add)#バリューの追加 for i in range(len(jk)):#辞書型データの作成 add_dic[jk[i]]=jv[i] j_data[n]=add_dic#指定した箇所に、辞書型データを代入 #書き込み 前のデータを削除して、追加したデータを上書きします js_r=open('json_f/js_py2.json','w') json.dump(j_data,js_r,indent=2) js_r.close() |
プログラムの説明をします。
4~6行目はJSONファイルを読み込んで、そのデータを変数j_dataに格納しています。
8行目は追加したデータを入れるために、辞書型データの入れ物を用意しています。
10行目は何番目の辞書型データに追加するかを決めています。
n=0の0番目は{‘1001’: ‘一郎’, ‘1002’: ‘二郎’, ‘1003’: ‘三郎’}この辞書型データになります。
11、12行目は辞書型データのkeyとvalueを分けて、リストにデータを入れています。
15、16行目は追加するデータになります。
18、19行目はkeyとvalueに分けたリストに、データを追加しています。
21、22行目は8行目で用意しておいた辞書型データの入れ物に、データを入れています。
24行目は10行目で決めた辞書型データに、追加した辞書型データを代入しています。
27~29行目は前のJSONファイルのデータを消して、追加した新しいデータをJSONファイルに上書きしています。
JSONファイルをメモ帳で開いた様子がこちら↓

Pythonで読み込んで表示した様子↓

“1004”:”四郎” このデータが正常に、追加されています。
続いて、
{‘1001’: 21, ‘1002’: 22, ‘1003’: 23}この辞書型データに
“1004”:24 このデータを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import json #JSONファイルの読み込み js_r=open('json_f/js_py2.json','r') j_data=json.load(js_r)#読み込んだデータを変数に入れる js_r.close() add_dic={}#ここに追加したデータを入れていきます。 n=1#何番目の辞書型データに追加するか決める jk=list(j_data[n].keys())#keyを取り出して、リストにします jv=list(j_data[n].values())#valueを取り出して、リストにします #追加データ key_add="1004" val_add=24 jk.append(key_add)#keyの追加 jv.append(val_add)#バリューの追加 for i in range(len(jk)):#辞書型データの作成 add_dic[jk[i]]=jv[i] j_data[n]=add_dic#指定した箇所に、辞書型データを代入 #書き込み 前のデータを削除して、追加したデータを上書きします js_r=open('json_f/js_py2.json','w') json.dump(j_data,js_r,indent=2) js_r.close() |
JSONファイルをメモ帳で開いた様子がこちら↓

Pythonで読み込んで表示した様子↓

最後に、
{‘1001’: ‘True’, ‘1002’: ‘True’, ‘1003’: ‘False’}この辞書型データに
“1004”:”True” このデータを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import json #JSONファイルの読み込み js_r=open('json_f/js_py2.json','r') j_data=json.load(js_r)#読み込んだデータを変数に入れる js_r.close() add_dic={}#ここに追加したデータを入れていきます。 n=2#何番目の辞書型データに追加するか決める jk=list(j_data[n].keys())#keyを取り出して、リストにします jv=list(j_data[n].values())#valueを取り出して、リストにします #追加データ key_add="1004" val_add="True" jk.append(key_add)#keyの追加 jv.append(val_add)#バリューの追加 for i in range(len(jk)):#辞書型データの作成 add_dic[jk[i]]=jv[i] j_data[n]=add_dic#指定した箇所に、辞書型データを代入 #書き込み 前のデータを削除して、追加したデータを上書きします js_r=open('json_f/js_py2.json','w') json.dump(j_data,js_r,indent=2) js_r.close() |
JSONファイルをメモ帳で開いた様子がこちら↓

Pythonで読み込んで表示した様子↓

この投稿以外にPythonとJSONを使った投稿がこちら↓