mcpField
S
sqlite-utils

sqlite-utils

官方Agent-ready
github.com数据库与数据2.2ksqlite-utils3 周前更新
代码仓库访问官网

关于 sqlite-utils

sqlite-utils 通过命令行接口管理 SQLite 数据库。它支持直接从 JSON、CSV 等格式导入数据,执行查询并检查数据库结构。

主要功能

  1. 01从 JSON 或其他格式将数据插入 SQLite 表
  2. 02查询和检查数据库表、列及其属性
  3. 03使用 Python 脚本或 shell 命令组合数据操作

适用场景

  1. 01编码 Agent 处理和转换结构化数据集
  2. 02在自动化工作流中快速建立数据库进行分析
  3. 03从多个源汇总数据到单个数据库中

安装

选择你的系统或包管理器,复制命令到终端运行。

$
pipx install sqlite-utils

安装完成后运行sqlite-utils --version确认安装成功。

命令示例

常用命令按使用顺序排列。

01
sqlite-utils insert data.db items items.json
02
sqlite-utils tables data.db

详细介绍

sqlite-utils

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

用于操作 SQLite 数据库的 Python 命令行工具和库。

功能亮点

  • 直接将 JSON(或 CSV 或 TSV)通过管道传入新的 SQLite 数据库文件,并根据相应的架构自动创建表
  • 运行内存中的 SQL 查询,包括联接,直接查询 CSV、TSV 或 JSON 文件中的数据并查看结果
  • 针对数据库表配置 SQLite 全文搜索,并运行搜索查询,结果按相关性排序
  • 对表运行数据转换,以进行 SQLite 的 ALTER TABLE 不直接支持的架构变更,例如更改列类型
  • 将列提取到单独的表中,以更好地规范化现有数据
  • 使用 Python 迁移文件和 sqlite-utils migrate 命令管理数据库迁移
  • 安装插件,添加自定义 SQL 函数和其他功能

从 sqlite-utils 3.x 升级?请参阅 4.0 升级指南。

更多内容请阅读我的博客系列文章sqlite-utils 新功能以及其他标记为 sqlite-utils 的文章。

安装

pip install sqlite-utils

或者,如果你在 macOS 上使用 Homebrew:

brew install sqlite-utils

作为命令行工具使用

现在,你可以像这样使用命令行工具:

$ 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"

请查看完整的命令行文档,了解更多命令的详细说明。

作为库使用

你也可以像这样 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 文件的命令行工具
  • dogsheep:一系列用于个人数据分析的工具,构建于 sqlite-utils 之上

评论

支持 Markdown