我的Flask应用未正确返回非ASCII字符

时间:2019-04-29 12:39:27

标签: python utf-8 python-3.7 non-ascii-characters flask-restful

我正在尝试使用flask-restful api,并且代码应作为返回值返回json数据列表。但是,当json中的内容是非ASCII字符(如(èòsèèò))时,返回值

这是示例代码:

#! /usr/bin/env python
# coding: utf-8

from flask import Flask, Response
from flask_restful import Resource, Api
import json

app = Flask(__name__)
# Create the API
API = Api(app)



@app.route('/')
def hello_world():
    return Response('Here, with Response it works well: höne')

class APICLASS(Resource):
    """

    """
    def get(self, id):
        return [
        {
        "hey": 11,
        "test": "höne"
        }], 200


API.add_resource(APICLASS, '/<string:id>')

if __name__ == '__main__':
    app.run(debug=True)

但是当我在localhost上检查结果时,会看到以下输出:

[
        {
        "hey": 11,
        "test": "h\u00f6ne"
        }]

1 个答案:

答案 0 :(得分:3)

显然,它与this bug有关。 我不确定是否有任何副作用,但这可能有帮助:

# ...
app = Flask(__name__)
# Create the API
API = Api(app)

API.app.config['RESTFUL_JSON'] = {
    'ensure_ascii': False
}

@app.route('/')
# Rest of your code