美文网首页
Flask返回json数据不显示中文问题

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

作者: W11ng | 来源:发表于2020-03-20 00:18 被阅读0次

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


    只显示进制数
    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")
    
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/pafdyhtx.html