Firebase Realtime Database からエクスポートした JSON を CSV に変換する
概要
Firebase Realtime Database で取得していたログを Excel で集計しようと思い、いざエクスポートしようとしたら JSON でしかエクスポートできないじゃん?ってなったので、エクスポートした JSON を CSV に変換する雑な node.js のコードをメモしておく。(改めて調べたら既存ライブラリがあったのでそちらでも良いのかもしれない)
少ししか調べていないが、Web インタフェースだけではなく SDK や CLI 経由でもおそらく JSON しか取得できない。
JSON -> CSV 変換コード
gist にも載せてる、無駄な処理が多いが結果はうまくいった。
https://gist.github.com/yakimelon/123cba8c227562ce141792908a4d9ecd
function replace(text) {
return text
// 余計な文字の削除
.replace(/(".*" : \{|\{|\}|".*" : |^ )/g, '')
// 1つのデータの塊を1列に変換
.replace(/",\r?\n/g, '", ')
// 半角スペースをすべて削除
.replace(/ /g, '')
// 行間のカンマとその行を削除
.replace(/"\r?\n,/g, '"')
// 行と行の間にある3つの改行を1つに変換する
.replace(/\r?\n\r?\n/g, '\n')
}
const fs = require('fs');
const text = fs.readFileSync("input.json", 'utf-8');
console.log(replace(text));
try {
fs.writeFileSync("output.csv", replace(text));
console.log("Success!");
} catch(e) {
console.log("Failed...")
}
使い方
- node.js の環境構築をする
- 任意のフォルダを作る
- 上記 js コードを
JsonToCsv.js
という名前で同じフォルダに配置 - 変換したい json ファイルを
input.json
という名前で同じフォルダに配置 -
node JsonToCsv.js
を実行する - 変換された csv ファイルが
output.csv
という名前で出力される
まとめ
軽いコードを書こうと思ったときに node.js は意外と便利でした。
Author And Source
この問題について(Firebase Realtime Database からエクスポートした JSON を CSV に変換する), 我々は、より多くの情報をここで見つけました https://qiita.com/yakimeron/items/6385f90b7c6d32c3643b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .