python - SQL 查询在 {key:value} 对中返回缺少键(列名)的元组输出
问题描述
我想以键:值格式从数据库表中检索数据。但是通过使用 SQL 查询,我只能获得元组格式的值。
这是我的代码:
query = "SELECT * FROM `stock_" + str(
user_id) + "` INNER JOIN product ON stock_" + str(
user_id) + ".product_id=product.id WHERE product.category=" + category +
" AND product.sub_category =" + sub_category
cursor.execute(query)
records = cursor.fetchall()
print(records)
这是输出:
(11, datetime.datetime(2020, 1, 23, 2, 7, 59),10,500,400,100,20.0)
和我预期的输出:
{
"id": 11,
"expiry_date": "2020-07-01",
"quantity": 10,
"mrp": 500,
"selling_price": 400,
"discount_prize": 100,
"discount_percent": 20.0
}
解决方案
您可以使用cursor.description
来获取字段名称,然后可以使用列表推导式来创建包含查询结果的字典列表。
这应该会给你一些接近你想要的输出的东西。
records = cursor.fetchall()
fields = [field[0] for field in cursor.description]
data = [dict(zip(fields, record)) for record in records]
推荐阅读
- hadoop - TableInputFormat 不是包 org.apache.hadoop.hbase.mapreduce 的成员
- python-3.x - 如何为 Selenium 中的按钮提供“driver.find_element”
- gmail - 如何在gmail中将自动响应设置为自定义html
- php - 在 Laravel 中将值设置为 ID 表
- java - java.net.SocketException:对等方重置连接。在自定义抽搐机器人
- python - 如何在不使用排序功能的情况下在 python 中排序
- swift - 使用 Decodable 将空 JSON 字符串值解码为 nil
- json - JSON模型中使用枚举类型访问结构属性的语法
- r - SVM 交叉验证问题 - 表中的错误(testingsvmmodel,testing):所有参数必须具有相同的长度
- eclipse - Tomcat localhost failed to start