[python] jsonで日本語を使うときのメモ
高確率で忘れる日本語を含むJSONファイルの読み書き方法について。
まず書き込み
1 2 3 4 5 6 7 8 9 10 11 12 13 |
## -*- coding: utf-8 -*- import json import codecs def json_write_test(path): with codecs.open(path,'w','utf-8') as f: dump = json.dumps({'test':u"あいうえお"},ensure_ascii=False) f.write(dump) json_write_test("E:/test.json") |
ミソは、 open() ではなく codecs.open()を使うところ(これは通常の日本語ファイル使用をする場合と共通)と、dumpsするときに、引数で ensure_ascii=False を追加すること。
ensureって「確保」って意味らしいのですが、アスキーを確保=Falseにするとなんで大丈夫になるんだろう教えてエロいt
続いて読み込み。
1 2 3 4 5 6 7 8 |
def json_load_test(path): with open(path, 'r') as f: return json.loads(f.read(),'utf-8') print json_load_test("E:/test.json") |
読み込むときは、loadsの引数で保存したときの文字コードを入れればOKです。
日本語関係って、やっては苦しんで 苦しみが消えた頃にまた苦しむの繰り返しをしているような
気がしてますがたぶん気のせいじゃない…Pythonと日本語は仲悪すぎ、日本語消滅しないかな…