Flask返回json数据不显示中文问题

2020-03-20  本文已影响0人  W11ng

调用接口返回中文数据时,发现原本是中文的数据全显示十六进制数,查了些资料,记录下解决方法。


只显示进制数
  1. 在设置中加入如下配置就行。
app.config['JSON_AS_ASCII'] = False

使用配置参数的好处是返回给客户端的content-typejson

image.png
  1. 或者使用json模块的json.dumps(ensure_ascii=False)返回json数据。
    但返回客户端的content-type显示为html
    image.png

总结:显示的是json数据返回的类型却不是json类型,这样不太好。所以选择第一种方法比较好。

完整代码:

from flask import Flask, request, jsonify
import requests

app = Flask(__name__)


@app.route("/")
def weather():
    city = request.args.get('city')
    # 和风天气api
    base_url = 'https://free-api.heweather.net/s6/weather/now?location=%s&key=5aba2b45d2a64c079f9dd20a22faccab' % city
    resp = requests.get(url=base_url)

    json_list = resp.json()['HeWeather6']
    weather_data = json_list[0]['basic']
    return jsonify(weather_data)


if __name__ == '__main__':
    app.config['JSON_AS_ASCII'] = False
    app.run(host="localhost", port=8000, debug="true")

上一篇 下一篇

猜你喜欢

热点阅读