You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python dbm包创建的数据库无法通过SQLite Viewer打开的问题

问题:dbm创建的文件无法用SQLite Viewer打开

核心原因

dbm和SQLite是完全不同的数据库类型,文件结构完全不兼容:

  • dbm是轻量级键值对存储,本质是把数据按字典形式序列化到文件,没有SQL数据库的表结构、索引等关系型特征。
  • SQLite是关系型数据库,遵循SQL标准,文件有特定的格式规范,SQLite Viewer只识别这种格式。

所以你用dbm生成的cache文件,根本不是SQLite数据库,自然会被提示“file is not a database”。

解决办法

方式1:用Python脚本读取dbm数据

如果只是想查看dbm里的内容,写个简单脚本就能输出:

import dbm

with dbm.open('cache', 'r') as db:
    # dbm存储的是字节串,需要解码为字符串
    for key in db.keys():
        decoded_key = key.decode('utf-8')
        decoded_value = db[key].decode('utf-8')
        print(f"{decoded_key}: {decoded_value}")

方式2:改用SQLite存储数据

如果需要用SQLite Viewer可视化查看,直接换成SQLite来存储:

import sqlite3

# 连接SQLite数据库(不存在则自动创建)
conn = sqlite3.connect('cache.db')
cursor = conn.cursor()

# 创建存储键值对的表
cursor.execute('''
CREATE TABLE IF NOT EXISTS cache (
    key TEXT PRIMARY KEY,
    value TEXT
)
''')

# 插入或更新数据
cursor.execute(
    'INSERT OR REPLACE INTO cache (key, value) VALUES (?, ?)',
    ('www.python.org', 'Python Website')
)

# 提交更改并关闭连接
conn.commit()
conn.close()

生成的cache.db文件就能直接用SQLite Viewer打开查看了。

内容的提问来源于stack exchange,提问作者Wall Walker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 10:40:34