sqlitedict
项目核心内容总结:
功能
sqlitedict 是一个基于 SQLite 的持久化字典工具,提供类似 Python 字典的接口,支持多线程访问、自定义序列化及多表存储。数据以 SQLite 数据库文件形式保存,适用于需要持久化存储复杂对象的场景。
使用方法
- 安装:通过
pip install -U sqlitedict安装。 - 基本操作:
- 写入:创建
SqliteDict实例,通过db[key] = value存储数据,需手动调用commit()提交(或启用autocommit=True)。 - 读取:通过
db[key]或items()/keys()/values()遍历数据。 - 关闭:使用
db.close()或上下文管理器with SqliteDict(...) as db:自动关闭。
- 写入:创建
- 多表存储:通过
tablename参数指定表名,同一数据库文件可存储多个表。 - 自定义序列化:通过
encode/decode参数替换默认的pickle(如使用json或压缩)。 - 键编码:支持非字符串键,需传入自定义
encode_key/decode_key函数。
主要特性
- 支持任意可序列化对象(默认使用
pickle最高协议)。 - 多线程安全(解决 SQLite 在 Python 中的线程限制)。
- 自定义编解码器,支持 JSON、压缩等扩展。
- 高效处理大数据库(SQLite 本身内存优化)。
- 提供
len()、items()等字典接口,但注意len()需扫描全表。 - 注意事项:修改字典值需重新赋值(如
db[key] = new_value)才能持久化;未提交数据会丢失。