版权声明:共同努力,有不足的地方欢迎大家点出 https://blog.csdn.net/qq_42897012/article/details/84191000
首先是官方的方法
# 导入驱动
import sqlite3
def dict_factory(cursor, row):
d = {}
for index, col in enumerate(cursor.description):
d[col[0]] = row[index]
return d
# 连接数据库
connect = sqlite3.connect("testsqlite.db")
# 指定工厂方法
connect.row_factory = dict_factory
cursor = connect.cursor()
cursor.execute("SELECT * FROM student")
rows = cursor.fetchall()
print(rows)
for row in rows:
print(row)
# 提交操作
connect.commit()
# 关闭游标
cursor.close()
# 关闭数据库连接
connect.close()
另一种方法
import sqlite3
connect = sqlite3.connect("testsqlite.db")
cursor = connect.cursor()
cursor.execute("""SELECT * FROM employee;""")
employees = cursor.fetchall()
# print(employees)
# 获得列名
# print(cursor.description)
description = cursor.description # 获得游标所在表的信息 包含列名。
column_name_list = []
for i in description:
column_name_list.append(i[0])
# print(column_name_list)
print("-" * 50)
# 结果集拼字典
result = []
for employee in employees:
employee_dict = {}
for index in range(0, len(column_name_list)):
# print(employee[index])
employee_dict[column_name_list[index]] = employee[index]
# print(employee_dict)
result.append(employee_dict)
# print(dict(zip(column_name_list, employee)))
# print(result)
# 语法糖 列表生成式
print([dict(zip(column_name_list, employee)) for employees in employees])