【python】Json書き込みで文字化けを防ぐ!

先日、pythonでjsonを作成するプログラムを作っている際に、文字コードがutf-16になってしまうという現象が置きました。

ネットでいろいろ調べてみたところわかりやすい記事がなかったので、まとめておきたいと思います。

pythonのバージョンは3.6.2です。

codecsモジュールを使って文字化けを防ごう!

書き込みの際に文字コードを指定することで防げました!ぜひ試して見てください。

# -*- coding: utf-8 -*-
import json
import codecs

#辞書型を作成
lst = {"test":"あいうえお"}

#test.jsonに書き込み
f = codecs.open('test.json', 'w','utf-8')
json.dump(lst, f, ensure_ascii=False)

f.close()

まとめ

どうやら文字列をcsvから読み込んでいたことが原因だったようです。csvの読み込み時に文字コード指定しても改善できたかもしれません。

とりあえず、同じような現象に合ってしまった人は上のコードを試してみてください。