見出し画像

flask のjsonifyで日本語がutf-8で出力されてしまう

flaskでレスポンスを返す時、

return json.dumps('{"aa":"bb","jpn":"漢字123"}', ensure_ascii=False)

とjson.dumps を使ってもいいのだが、jsonify (ちょっと整形されて出力される)を使いたいとき多くのサイトで 

app.config['JSON_AS_ASCII'] = False #日本語の文字化け制御 

のように app.config (appは app = Flask(__name__) のようにインスタンス生成してある)で設定するように書いてあるのでその通りにしてもやはり utf-8のまま出力されてしまった( pythonあるある、なのだが)。で、さらに検索すると flaskのバージョンが最新だと 

app.json.ensure_ascii = False        # バージョンが最新
...
...
return jsonify({"aa":"bb","jpn":"漢字123"})

結果:
{
  "aa": "bb",
  "jpn": "漢字123"
}

のように書きなさい、とあったのでそれを試したら見事解決したのでメモを残しておく。ちなみに flaskのバージョンは以下(ubuntu20.04LTS)

flask --version
Python 3.8.10
Flask 3.0.0
Werkzeug 3.0.1

この記事が気に入ったらサポートをしてみませんか?