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

查看:1505
本文介绍了python - 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: 中文한국어"

解决方案

指定 RESTFUL_JSON 配置项:

app = Flask(__name__)
app.config.update(RESTFUL_JSON=dict(ensure_ascii=False))

这篇关于python - flask-restful 中文返回的响应变成了 unicode literal的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆