数据库返回默认是以 tuple 类型返回(为了安全起见),但有时候元组返回很不方便,如果能以字典的形式返回那就太棒了~
MySQL 设置返回字典类型是在连接数据库时设置
cursorclass = pymysql.cursors.DictCursor
但是 sqlite3 数据库没有内置返回字典的方法,怎么返回字典呢?
官方给出一个解决方案
def dict_factory(cursor, row):
d = {}
for index, col in enumerate(cursor.description):
d[col[0]] = row[index]
return d
db = sqlite3.connect('*.db')
db.row_factory = dict_factory
cursor = db.cursor()
就是在连接数据库后,将 db.row_factory 方法重写为 dict_factory 方法即可
当然还有一种方式,就是在我们查询完数据后,获取游标所在位置的列名
description = cursor.description
数据库返回默认是以 tuple 类型返回(为了安全起见),但有时候元组返回很不方便,如果能以字典的形式返回那就太棒了~MySQL 设置返回字典类型是在连接数据库时设置cursorclass = pymysql.cursors.DictCursor即可但是 sqlite3 数据库没有内置返回字典的方法,怎么返回字典呢?官方给出一个解决方案def dict_factory(cursor,...
基于sqlite3的加密版本的数据库动态链接库,附lib和.h头文件,新测试可用。可设置密码和修改密码,加密后的数据库文件是无法被打开的。官方提供的免费版本sqlite3都是没有加密的,官方收费的很贵哦,有需要的朋友抓紧下载吧。
sqlite3_key是指定数据库密码。
sqlite3_rekey修改密码或给没有加密的数据库添加密码或清空密码,变更密码或清空密码前必须先正确执行 sqlite3_key。
SELECT CAST('3.02' as decimal)
-- they aren't real decimals in sqlite, though. beware floats.
二、sqlite数据类型转换参考
Affinity oftype-name
Conversion Processing 转换处理
Casting a value to atype-namewith no aff...
# dict_factory:可以使sqlite3返回的数据格式是字典形式
import sqlite3
conn = sqlite3.connect('../user_mess.db', check_same_thread=False)
def dict_factory(cursor, row):
d = {...