Flask返回json格式数据

栏目: Python · 发布时间: 7年前

内容简介:Flask返回json格式数据

Flask返回json格式数据

返回 json 格式数据主要有两个方面:

1、数据转换为json格式
2、声明数据为json格式

一、数据转换为json格式

转换为 json 格式是必须的,如

from flask import Flask

app = Flask(__name__)


@app.route('/')
def root():
    t = {
        'a': 1,
        'b': 2,
        'c': [3, 4, 5]
    }
    return t

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

这样访问会直接提示

TypeError: 'dict' object is not callable

比较常见的是采用标准库 json 进行格式转换:

from flask import Flask
import json

app = Flask(__name__)


@app.route('/')
def root():
    t = {
        'a': 1,
        'b': 2,
        'c': [3, 4, 5]
    }
    return json.dumps(t)

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

这样当访问时即能够正常得到 json 数据

二、声明数据为json格式

上面虽然可以正常运行了,但对于 http 而言还是不够友好的,因为在 Content-Type 中显示的是 text/html ;即其 MIME 因为没有设置,仍然是默认的 text/html

通常的解决办法是用 flask 中的 Response 模块,手动指定 MIME

from flask import Flask, Response
import json

app = Flask(__name__)


@app.route('/')
def root():
    t = {
        'a': 1,
        'b': 2,
        'c': [3, 4, 5]
    }
    return Response(json.dumps(t), mimetype='application/json')

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

这样在访问时 Content-Type 就是 application/json 了。

###三、更好的方法

因为 json 这么流行,实际上 flask 已经为 json 准备了专门的模块:jsonify

from flask import Flask, jsonify

app = Flask(__name__)


@app.route('/')
def root():
    t = {
        'a': 1,
        'b': 2,
        'c': [3, 4, 5]
    }
    return jsonify(t)

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

以上所述就是小编给大家介绍的《Flask返回json格式数据》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

世界因你不同:李开复自传(纪念版)

世界因你不同:李开复自传(纪念版)

李开复,范海涛 著作 / 中信出版社 / 2015-7-10 / 39.00

编辑推荐 1.李开复唯一一部描写全面生平事迹的传记:《世界因你不同:李开复自传》书中讲述了家庭教育培育的“天才少年”;学校教育塑造的“创新青年”,走入世界顶级大公司,苹果、微软、谷歌等亲历的风云内幕,岁月30载不懈奋斗、追求事业成功的辉煌历程。 2.娓娓道来、字字珠玑、可读性和故事性皆佳。李开复博士是青少年成长成才的励志偶像,年轻家长、学校教师阅读后也能从中得到感悟和启发。 3.......一起来看看 《世界因你不同:李开复自传(纪念版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试