python - 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]}
在返回行之前手动添加类似的内容。
解决方案
游标对象具有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}
。
推荐阅读
- python - How to convert dict value to a float
- javascript - Javascript es2015 import syntax
- c# - how to open mysql connection correctly?
- javascript - 如何为 angularjs 应用 webpack?
- qt - 使用 Qt 使用 OpenSSL 手动加密数据
- r - ggplot : 使用带有 aes(x = ..., y = ...) 的变量
- android - 如何将 OpenCV 库添加到 AS3.1.2 和 NDK 17.0
- javascript - 更改全日历中的事件
- c# - 在我的 Web API 上启用 CORS 不起作用
- javascript - 根据动画延迟设置超时功能