flask-restful 中文返回的响应变成了 unicode literal

下面的示例代码,运行在 Python 2.7 环境

pip install flask-restful flask
# -*- coding:utf-8 -*-
from flask import Flask
from flask_restful import Api, Resource, reqparse, marshal_with, fields

class Greetings(Resource):
    def get(self, message=None):
        message = '中文한국어'
        greeting = 'You have received a message: {0}'.format(message) if message else 'zzzzzzz......'
        return greeting, 200

app = Flask(__name__)

api = Api(app)

api.add_resource(Greetings, '/radio/', '/radio/<message>')


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

这是运行的结果:

? Discuq@iDocker: ~ => curl  http://127.0.0.1:8000/radio/ 
"You have received a message: \u4e2d\u6587\ud55c\uad6d\uc5b4"

期望得到的结果是:

? Discuq@iDocker: ~ => curl  http://127.0.0.1:8000/radio/ 
"You have received a message: 中文한국어"
阅读 10.6k
1 个回答

指定 RESTFUL_JSON 配置项:

app = Flask(__name__)
app.config.update(RESTFUL_JSON=dict(ensure_ascii=False))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏