Flask 框架中记录集转 JSON 的方法
Flask 框架里,可以用 jsonify 返回 JSON 数据,但是为什么不用 Python 自带的 json 模块返回 JSON 数据呢?
其实两者是差不多的,jsonify 指明了 Content-Type 是 application/json,这样做是符合 HTTP 协议的规定的,这就是使用 jsonify 的原因之一。
但是从数据集转 jsonify 有很多细节需要注意,本文将介绍数据集转 jsonify 处理的几种办法。
基础代码结构
import config
from exts import db
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
from flask import jsonify, make_response
app = Flask(__name__)
# 从 config.py 文件中获取数据库配置信息
app.config.from_object(config)
db = SQLAlchemy(app)
@app.route('/weather', methods=['GET', 'POST'])
def getjson():
pass
if __name__ == '__main__':
app.run()
将记录集转换为字典列表
下面代码封装了一个将记录集和数据字段名称转换为字典列表的函数,通过 cursor.description 获取数据字段元数据,通过 zip 将字段名和结果封装起来。
def rows_as_dicts(cursor):
# 将游标集转换为字典类型列表
col_names = [i[0] for i in cursor.description]
return [dict(zip(col_names, row)) for row in cursor]
下面代码是通过 mappings 方法将结果集转换为字典列表。


