Flask返回json格式数据

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

内容简介: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格式数据》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

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

Web Development Recipes

Web Development Recipes

Brian P. Hogan、Chris Warren、Mike Weber、Chris Johnson、Aaron Godin / Pragmatic Bookshelf / 2012-1-22 / USD 35.00

You'll see a full spectrum of cutting-edge web development techniques, from UI and eye candy recipes to solutions for data analysis, testing, and web hosting. Make buttons and content stand out with s......一起来看看 《Web Development Recipes》 这本书的介绍吧!

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

html转js在线工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

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

正则表达式在线测试