dataset: 为懒人准备的数据库#

虽然在关系型数据库中管理数据有很多好处,但它们很少在日常工作中用于处理中小型数据集。但为什么呢?为什么我们看到大量数据存储在 CSV 或 JSON 格式的静态文件中,即使它们难以查询和增量更新呢?

答案是 **程序员很懒**,因此他们倾向于选择他们找到的最简单的解决方案。在 **Python** 中,数据库并不是存储一堆结构化数据的最简单解决方案。这就是 **dataset** 要改变的地方!

**dataset** 提供了一个简单的抽象层,它消除了大多数直接的 SQL 语句,而无需完整的 ORM 模型 - 本质上,数据库可以像 JSON 文件或 NoSQL 存储一样使用。

使用 **dataset** 的简单数据加载脚本可能如下所示

import dataset

db = dataset.connect('sqlite:///:memory:')

table = db['sometable']
table.insert(dict(name='John Doe', age=37))
table.insert(dict(name='Jane Doe', age=34, gender='female'))

john = table.find_one(name='John Doe')

这里有 类似的代码,没有 dataset

功能#

  • **自动模式**:如果写入的表或列在数据库中不存在,它将自动创建。

  • **Upserts**:记录将被创建或更新,具体取决于是否可以找到现有版本。

  • 用于简单查询的 **查询助手**,例如 all 表中的所有行或所有 distinct 一组列中的值。

  • **兼容性**:基于 SQLAlchemy 构建,dataset 支持所有主要数据库,例如 SQLite、PostgreSQL 和 MySQL。

内容#

贡献者#

datasetFriedrich LindenbergGregor AischStefan Wehrmeyer 编写和维护。它的代码主要基于之前的库 sqlaload 和 datafreeze。当然,我们站在 巨人的肩膀上

我们可爱的 裸鼹鼠 是由 Johannes Koch 绘制的。