JSON
    Top > Python > I/O > テキスト
    JSON形式での出力
    辞書型のオブジェクトまたはそのリストをJSON形式で出力する.
    JSONファイルに追記する
    これに これを追記して これを作りたい. 一度ファイルを読み込んで書き足すのでも良いが,追記モードでファイルを終端からいじる方が早い気がする. open(filename, 'ab+') 追記モード&バイナリ(ストリーム)モードでファイルを開く. f.seek(offset, whence) ファイルオブジェクトの位置を変更する. 位置は基準点にoffsetを足したものになる. whence 0 (default): 先頭, 1: 現在位置, 2: 終端 seek(-1,2)では終端の一つ手前に移動する. f.truncate(size=None) ストリームのサイズ(ここではファイルイブジェクト)のサイズを指定されたsizeバイトに変更する. sizeが指定されていない場合は現在位置に切り詰める. f.write() 書き込み. カンマを足して,追記したいコンテンツをjson.dumps()で追記して,リストの括弧を閉じる. vimで開くとうまくいかなくなる問題 テストしたいことがあってvimで開いて編集したりすると,位置がずれて正しく追記できなくなってしまった. 上の方法を適用すると次のようになってしまう. vimで開いても違いが無いので分かりにくいが,どうやら改行コードが入っているらしい.ということで次のように修正した. f.read()で移動してしまうのでその都度位置を戻している.
    References
    7. 入力と出力 — Python 3.8.4rc1 ドキュメント + https://docs.python.org/ja/3/tutorial/inputoutput.html io --- ストリームを扱うコアツール — Python 3.8.4rc1 ドキュメント + https://docs.python.org/ja/3/library/io.html#io.IOBase.truncate