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
この記事が気に入ったらサポートをしてみませんか?