使用 Python sqlite3 API 的表列表、数据库模式、转储等

新手上路,请多包涵

出于某种原因,我找不到一种方法来获取 sqlite 的交互式 shell 命令的等效项:

 .tables
.dump

使用 Python sqlite3 API。

有没有这样的东西?

原文由 noamtm 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 312
2 个回答

您可以通过查询 SQLITE_MASTER 表来获取表和模式的列表:

 sqlite> .tab
job         snmptarget  t1          t2          t3
sqlite> select name from sqlite_master where type = 'table';
job
t1
t2
snmptarget
t3

sqlite> .schema job
CREATE TABLE job (
    id INTEGER PRIMARY KEY,
    data VARCHAR
);
sqlite> select sql from sqlite_master where type = 'table' and name = 'job';
CREATE TABLE job (
    id INTEGER PRIMARY KEY,
    data VARCHAR
)

原文由 converter42 发布,翻译遵循 CC BY-SA 2.5 许可协议

在 Python 中:

 con = sqlite3.connect('database.db')
cursor = con.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
print(cursor.fetchall())

注意我的其他 答案。使用 pandas 有一种更快的方法。

原文由 Davoud Taghawi-Nejad 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题