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

Uncategorized
364 words

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

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

保存

1
2
3
4
5
6
7
8
9
10
11
import json
import base64

data = {'name': 'noita', 'website': 'https://noitaro.github.io'}

# 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 にエンコードされた文字列が保存されているのが確認できます。

1
eyJuYW1lIjogIm5vaXRhIiwgIndlYnNpdGUiOiAiaHR0cHM6Ly9ub2l0YWxvZy50b2t5byJ9

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

https://tool-taro.com/base64_decode/

読み込み

1
2
3
4
5
6
7
8
9
10
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 は保存時と同じで、バイナリファイルとして扱うようになります。

確認

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