在Python中创建sqlite虚拟表

6 投票
2 回答
3849 浏览
提问于 2025-04-17 03:24

我想为一个特殊的数据源创建一个类似SQL的接口,这样我就可以用Python来查询它。简单来说,我有一个数据源,里面有一些可以遍历的命名容器,里面装着各种实体。我希望能够用SQL来过滤、连接、排序,最好还能进行更新、插入和删除。

根据我的理解,sqlite3的虚拟表功能非常适合这个任务。请问在Python中创建所需的绑定是否可行?我知道这些绑定需要像C语言那样,但我希望有人已经用C语言或ctypes写了一个Python的封装。

如果有更好或更简单的方法,我也很乐意接受。

2 个回答

-2

听起来你可以使用 SQLAlchemy 来把这些对象保存到 sqlite3 数据库里,可能是一个在 :memory: 中的数据库。这样你就可以对这些对象和表进行查询,甚至可以直接写原始的 SQL 语句。你还可以很方便地更新、插入或删除这些数据。

6

你可以通过在SQLite中注册一个虚拟表来实现这个功能,具体可以使用APSW的Python绑定

这里有一个例子,展示了如何使用APSW与CouchDB进行交互

对于Perl语言,也有类似的功能,具体可以参考在Perl中创建SQLite虚拟表扩展

最后,如果你想在PostgreSQL 9.1中创建一个基于Python的虚拟表,可以查看http://multicorn.org/

撰写回答