【Python】JSONファイルをBASE64エンコード

アプリ開発

JSONファイルをBASE64にエンコードして保存したり読み込んだりします。

暗号化までとはいきませんが、技術者じゃないと読めない形にできるので、少し重宝するかもしれません。

スポンサーリンク

保存

import json
import base64

data = {'name': 'noita', 'website': 'https://noitalog.tokyo'}

# BASE64で保存
with open('./sample.json', mode='wb') as f:
    data = json.dumps(data)
    data = data.encode('utf-8')
    data = base64.b64encode(data)
    f.write(data)

mode

mode に w を設定した場合、ファイルが存在しないときは新規作成し、ファイルが存在するときは上書き保存します。

mode に b を設定した場合、バイナリファイルとして読み書きします。

確認

上記を実行すると sample.json というファイルが作成されます。テキストエディターで開くと BASE64 にエンコードされた文字列が保存されているのが確認できます。

eyJuYW1lIjogIm5vaXRhIiwgIndlYnNpdGUiOiAiaHR0cHM6Ly9ub2l0YWxvZy50b2t5byJ9

BASE64 で保存されているので、次のサイト等でデコードすることもできます。

Base64デコード(Base64 Decode)|Web便利ツール@ツールタロウ
文字列を指定の文字コードでBase64デコードするWebツール。PC・スマートフォン・タブレットのブラウザで使えます。常時SSL対応。

読み込み

import json
import base64

# BASE64を読み込み
with open('./sample.json', mode='rb') as f:
    data = f.read()
    data = base64.b64decode(data)
    data = data.decode('utf-8')
    data = json.loads(data)
    print(data)

mode

mode に r を設定した場合、読み込みモードでファイルを開きます。省略してもOK。

b は保存時と同じで、バイナリファイルとして扱うようになります。

確認

実行してみると、正しく復元できていることが分かります。

タイトルとURLをコピーしました