用于操作 SQLite 数据库的 Python CLI 工具和库。
- 将 JSON(或 CSV 或 TSV)直接导入到新的 SQLite 数据库文件中,自动创建具有适当模式的表
- 运行内存中 SQL 查询,包括连接,直接针对 CSV、TSV 或 JSON 文件中的数据运行并查看结果
- 配置 SQLite 全文搜索,针对您的数据库表运行搜索查询,并按相关性排序
- 运行 针对您的表的转换,以进行 SQLite
ALTER TABLE
不直接支持的模式更改,例如更改列的类型 - 将列提取 到单独的表中,以更好地规范化现有数据
- 安装插件 以添加自定义 SQL 函数和附加功能
在我的博客上阅读更多内容,包括关于 sqlite-utils 新功能 的系列文章以及其他 标记为 sqliteutils 的条目。
pip install sqlite-utils
或者如果您在 macOS 上使用 Homebrew
brew install sqlite-utils
现在您可以使用此 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
之上