概要
SQLite3 のコマンドラインツールで select文で取得したデータをJSON形式で出力する。 カラムの型によって出力をダブルクォートで囲んでくれる。 残念ながらJSONファイルをインポートすることはできない。
JSON形式の出力はSQLite のバージョン3.33.0 から利用可能。
JSONのフォーマットについて
JSONの仕様はECMA-404もしくはRFC8259で確認できる。 適当に書いてもアプリが適切に解釈してくれることがあるので 気にしなくてもいいかも知れないが、目を通しておくといい。
- Standard ECMA-404 The JSON Data Interchange Syntax https://www.ecma-international.org/publications/standards/Ecma-404.htm
-
The JavaScript Object Notation (JSON) Data Interchange Format (rfc8259)
https://www.rfc-editor.org/rfc/rfc8259 -
(日本語訳)
http://www.asahi-net.or.jp/~ax2s-kmtn/internet/rfc8259j.html
環境
- Windows 10 64bit
- SQLite3 (3.33.0) Command-Line Shell
実行例
出力モードを変更する「.mode」コマンドを利用する。
ファイルに出力する場合は
「
.once
」コマンドを利用する。
1レコードが カラム名をキーワードとした連想配列となり、 その連想配列を要素とする行列として出力される。
id primary key autoincrement |
name not null |
quantity default 0 |
remark |
---|---|---|---|
1 | tomato | 100 | |
2 | potato | 120 | |
3 | pumpkin | 50 | (Comment...) |
コンソール上に出力する
sqlite> -- # 1.
sqlite> .mode json
sqlite> -- # 2.
sqlite> select * from product;
[{"id":1,"name":"tomato","quantity":100,"remark":""},
{"id":2,"name":"potato","quantity":120,"remark":""},
{"id":3,"name":"pumpkin","quantity":50,"remark":"(Comment...)"}]
- JSONモードに切り替え
- select文で取得した内容がJSON形式で表示される
ファイルに出力する
sqlite> -- # 1.
sqlite> .mode json
sqlite> -- # 2.
sqlite> .once output.json
sqlite> -- # 3.
sqlite> select * from product;
- JSONモードに切り替え
- 次のコマンドの結果をoutput.jsonとして出力
- select文で取得した内容がJSON形式でファイルに出力される
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html -
Changing Output Formats
公式の出力モードに関するドキュメント
https://www.sqlite.org/cli.html#dotmode
-
あさはか備忘録: SQLite3 コマンドの実行結果の出力先を変更する「.once」について
https://sfnovicenotes.blogspot.com/2019/10/sqlite3-once.html