Dr.WalletのデータからCSVを作る(分析編)


レシートを撮影すると、中の人が家計簿データにしてくれるアプリ「Dr.Wallet」が、実質有料化されたようです。

ただし2016/07/20現在、公式サイトにもGoogle Playにも、iTunes Storeにも情報がありません。
一番よくまとまっているのが公式ではなく、Gigazineさんのページという体たらくです。

お手軽な上に無料なので愛用していたのですが、即日有料化とか、その有料機能がAndroid版には未実装とか、いろいろと残念なので乗り換えようと思います。
ここで問題になるのが、データの移行です。
Dr.WalletにはCSV出力(エクスポート)機能がありません。(インポートはちゃっかりあります。)

Sponsored Link

さてこれまでのデータは捨てるしかないかな残念と思っていましたが、Gigazineさんにもまとめられているように、Twitter上に次のtweetがありました。

tweet上では省略されていますが、次のリンクになります。
https://www.drwallet.jp/receipts/after_input_data?year=2016&month=7
Web版のDr.Walletにログインされている状態ならば、JSON形式のデータがバラバラっと落ちてきます。お使いのブラウザにしかデータはいきませんので、押しても大丈夫です。
このリンクの出所はよくわかりませんが、おそらくWeb版上で表示するデータを取得するためのものなのだと思います。

Sponsored Link

このデータ、ちょっと書き換えればCSVになるというわけではないんですね。特にレシートの明細まで他サービスに移行したい場合は。
こんなデータです。

{"aaData":[["2016/07/01","\u3046\u3069\u3093\u5c4b",550,"\u5916\u98df\u8cbb","\u73fe\u91d1",142611341,true,"pending","receipt",false,true,"2016-07-03T00:00:00+09:00"],["2016/07/02","\u30b3\u30f3\u30d3\u30cb",110,"\u98df\u8cbb","\u73fe\u91d1",142726649,true,"pending","receipt",false,true,"2016-07-03T00:00:00+09:00"],["2015/09/01","",30000,"\u53e3\u5ea7\u632f\u66ff","\u3086\u3046\u3061\u3087\u9280\u884c\u2192\u73fe\u91d1",37293,null,"","transfer",false,false,"2015-09-01T09:00:00+09:00"],["2016/07/03","",10000,"\u53e3\u5ea7\u632f\u66ff","\u3086\u3046\u3061\u3087\u9280\u884c\u2192\u73fe\u91d1",37294,null,"","transfer",false,false,"2016-07-03T09:00:00+09:00"]],"transactions":{"142611341":{"590012412":{"name":"\u304b\u3051(\u4e26)","amount":300,"category_name":"\u5916\u98df\u8cbb","is_expense":true},"590012413":{"name":"\u5929\u3077\u3089","amount":250,"category_name":"\u5916\u98df\u8cbb","is_expense":true}},"142726649":{"590014530":{"name":"\u30c4\u30ca\u304a\u306b\u304e\u308a","amount":110,"category_name":"\u98df\u8cbb","is_expense":true}}}}

なんのことやらわかりませんが、ごにょごにょっとして読めるようにすると、次のようになります。

{"aaData":[
["2016/07/01","うどん屋",550,"外食費","現金",142611341,true,"pending","receipt",false,true,"2016-07-03T00:00:00+09:00"],
["2016/07/02","コンビニ",110,"食費","現金",142726649,true,"pending","receipt",false,true,"2016-07-03T00:00:00+09:00"],
["2015/09/01","",30000,"口座振替","ゆうちょ銀行→現金",37293,null,"","transfer",false,false,"2015-09-01T09:00:00+09:00"],
["2016/07/03","",10000,"口座振替","ゆうちょ銀行→現金",37294,null,"","transfer",false,false,"2016-07-03T09:00:00+09:00"]],
"transactions":{
"142611341":{"590012412":{"name":"かけ(並)","amount":300,"category_name":"外食費","is_expense":true},
"590012413":{"name":"天ぷら","amount":250,"category_name":"外食費","is_expense":true}},
"142726649":{"590014530":{"name":"ツナおにぎり","amount":110,"category_name":"食費","is_expense":true}}}}

「天ぷらうどんとおにぎりを食べたら金がなくったから下ろしました。」みたいなわびしいデータということが、なんとなくわかります。

それにしてもなんだか変なデータです。Webアプリのことはよく知らないのですが、前半と後半で一貫性がないというか。
さらに意味不明なのは、2016年07月のデータを落としてきたはずなのに、全然違う日の振替データが含まれというところです。排除しなければいけません。

まあここまでわかれば、あとは機械様にやらせましょう。
ということで、「実践編」へ↓。

Dr.WalletのデータからCSVを作る(実践編)

2016/11/03:Chrome拡張機能ができました。期間を指定して一括取得できます。

Chrome拡張機能でDr.WalletのデータからCSVを作る