Help us understand the problem. What is going on with this article?

DB のデータを json 形式でエクスポートする

More than 3 years have passed since last update.

python で書かれている pudo/dataset を使います。

インストール

$ pip install --local dataset

ここでは--local オプションを指定したことにより、ホームディレクトリの ~/.local/bindatafreeze コマンドがインストールされる。
適当にPATHを設定してください。

設定ファイルを用意 config.yaml

common:

  database: "mysql://root@127.0.0.1/information_schema"

exports:

  - query: "SELECT * FROM COLLATIONS"
    filename: "collations.json"
    format: json

実行&結果

$ datafreeze config.yaml

cat collations.json

[{"COLLATION_NAME": "big5_chinese_ci", "CHARACTER_SET_NAME": "big5", "ID": 1, "IS_DEFAULT": "Yes", ...

もっと詳しく

プログラミングインターフェイス

ライブラリとしてimport しても使えます。

import dataset

db = dataset.connect('mysql://root@127.0.0.1/information_schema')

for table in db.tables:
    result = db[table].all()
    dataset.freeze(result, format='json', filename='{0}.json'.format(table))

See also

かわいいキャラクターつき公式ドキュメントがあります。
dataset: databases for lazy people

内部的には SQLAlchemy が使用されています。

dataset そのものの記事も書きました。
Python - 怠惰な人のための超お手軽 ORマッパー dataset - Qiita

shoma
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away