PythonでJsonファイルに追加の書き込みをする方法
みなさまおはこんばんにちは、せなです
今回はJsonファイルに追加の値を入力する方法を解説したいと思います
Jsonファイルの基本的な使い方は以下の記事を参考にしてください
最後尾への追加
PythonでのJsonファイルへの追加を行う場合には以下のように記述します
import json
dic = {"apple": 120}
with open('sample.json', 'ab+') as file: # ファイルを開く
file.seek(-1, 2) # ストリームの位置を末尾-1に変更
file.truncate() # ']'を削除
file.write(' ,'.encode()) # ファイルへ,を追加
file.write(json.dumps(dic).encode()) # 追加する値を入力
file.write(']'.encode()) # ']'を追加
いくつかの使用している関数について説明します
seek()関数について
file.seek(-1, 2)
seek()関数はファイルストリームの位置を変更するために使用されます
seek(0, 0)
とすることでストリームの先頭位置に変更します
seek(1, 1)
であれば現在位置の次へ変更します
seek(-1, 2)
とすれば末尾の一つ手前に変更されます
truncate()関数について
file.truncate()
truncate()関数はストリームサイズの拡大、拡縮を行うために使用されます
truncate()
のように記述しない場合には現在位置にサイズを変更します
truncate(512)
のようにするとストリームサイズを512までに変更します
(ストリームサイズが512よりも小さければ拡大され、大きければ拡縮されます)
リンク:Python3.8.0ドキュメント truncate()
複数の値を最後尾に追加
複数の値を追加したい場合には以下のようにenumerate()を使用して行います
dic = {"apple": 120}, {"grape": 450}, {"orange": 80}
for i,d in enumerate(dic):
with open('sample.json', 'ab+') as file:
file.seek(-1, 2)
file.truncate()
file.write(' ,'.encode())
file.write(json.dumps(d).encode())
file.write(']'.encode())
ディスカッション
コメント一覧
まだ、コメントがありません