sqlite-utils 作者 simonw

加星

Screenshot of simonw/sqlite-utils

README 源代码

sqlite-utils

PyPI Changelog Python 3.x Tests Documentation Status codecov License discord

用于操作 SQLite 数据库的 Python CLI 工具和库。

一些功能亮点

在我的博客上阅读更多内容,包括关于 sqlite-utils 新功能 的系列文章以及其他 标记为 sqliteutils 的条目。

安装

pip install sqlite-utils

或者如果您在 macOS 上使用 Homebrew

brew install sqlite-utils

作为 CLI 工具使用

现在您可以使用此 CLI 工具执行如下操作

$ sqlite-utils memory dogs.csv "select * from t"
[{"id": 1, "age": 4, "name": "Cleo"},
 {"id": 2, "age": 2, "name": "Pancakes"}]

$ sqlite-utils insert dogs.db dogs dogs.csv --csv
[####################################]  100%

$ sqlite-utils tables dogs.db --counts
[{"table": "dogs", "count": 2}]

$ sqlite-utils dogs.db "select id, name from dogs"
[{"id": 1, "name": "Cleo"},
 {"id": 2, "name": "Pancakes"}]

$ sqlite-utils dogs.db "select * from dogs" --csv
id,age,name
1,4,Cleo
2,2,Pancakes

$ sqlite-utils dogs.db "select * from dogs" --table
  id    age  name
----  -----  --------
   1      4  Cleo
   2      2  Pancakes

您可以像这样将 JSON 数据导入到新的数据库表中

$ curl https://api.github.com/repos/simonw/sqlite-utils/releases \
    | sqlite-utils insert releases.db releases - --pk id

或导入 CSV 文件中的数据

$ sqlite-utils insert dogs.db dogs dogs.csv --csv

sqlite-utils memory 允许您将 CSV 或 JSON 数据导入到内存数据库中,并在一个命令中对其运行 SQL 查询

$ cat dogs.csv | sqlite-utils memory - "select name, age from stdin"

请参阅 完整的 CLI 文档,以全面了解更多命令。

作为库使用

您也可以 import sqlite_utils 并将其作为 Python 库使用,如下所示

import sqlite_utils
db = sqlite_utils.Database("demo_database.db")
# This line creates a "dogs" table if one does not already exist:
db["dogs"].insert_all([
    {"id": 1, "age": 4, "name": "Cleo"},
    {"id": 2, "age": 2, "name": "Pancakes"}
], pk="id")

查看 完整的库文档,了解您可以使用该 Python 库执行的所有其他操作。

相关项目

  • Datasette:用于探索和发布数据的工具
  • csvs-to-sqlite:将 CSV 文件转换为 SQLite 数据库
  • db-to-sqlite:用于将 MySQL 或 PostgreSQL 数据库导出为 SQLite 文件的 CLI 工具
  • dogsheep:一套用于个人分析的工具族,构建于 sqlite-utils 之上