首页 > 解决方案 > json 转储所有返回索引而不是属性

问题描述

我正在尝试从我的 mysql 数据库中获取数据。

from flask_mysqldb import MySQL

cur = mysql.connection.cursor()
cur.execute(SELECT id FROM users)

mysql.connection.commit()
data = cur.fetchall()
return jsonify({"result": data})

现在我的代码返回: {result: [[1]]} 但是,我希望我的结果显示如下: {result: {id: 1}} id 是 SQL 表中的属性,1 是值

我想知道是否有一种简单的方法可以从 SQL 数据库中手动检索属性,或者我是否必须data = {'id': data[0][0]}在返回行之前手动添加类似的内容。

标签: pythonflask

解决方案


游标对象具有description属性,它为您提供有关结果集中列的信息。这是一个元组列表,第一个元素是列名。

所以你可以这样做:

cur.execute("SELECT id FROM users")
column_names = [col[0] for col in cur.description]
data = [dict(zip(column_names, row)) for row in cur.fetchall()]
return jsonify({"result": data})

data是格式为 的字典列表{'column_name': value}


推荐阅读