スキップしてメイン コンテンツに移動

ももんが家計簿からZaimへ移行

家計簿管理を楽したくてスマホでレシートを読み取るクラウドサービスを試してみた。

MoneyForwardはぜんぜん読み取らなかった。
Zaimはかなり読む。フラッシュを焚いた方が認識率は上がる。

Zaimがいい感じなので、ももんが家計簿のデータをコンバートしてアップロードした。

CSV形式部分を抜き取ってZaimの読み込めるCSVフォーマットに変換したpythonスクリプトを以下に貼る。あくまで自分用。

# -*- coding: utf-8 -*-
import urllib2
import re
himoku = {
    u'e:食費': u'食費,食料品',
    u'e:日用品': u'日曜雑貨,消耗品',
    u'e:被服費': u'美容・衣服,洋服',
    u'e:交際費': u'交際費,プレゼント',
    u'e:交通費': u'クルマ,ガソリン',
    u'e:教育費': u'教育・教養,塾',
    u'e:通信費': u'通信,インターネット関連費',
    u'e:娯楽費': u'エンタメ,レジャー',
    u'e:医療費': u'医療・保険,病院代',
    u'e:光熱費': u'水道・光熱,電気料金',
    u'e:住居費': u'住まい,家具',
    u'e:保険料': u'クルマ,自動車保険',
    u'e:その他': u'その他,その他',
    u'e:税金': u'税金,その他',
 
}
def output_month(year,month,fp):
    auth_handler = urllib2.HTTPBasicAuthHandler()
    auth_handler.add_password(realm='KAKEIBO',
                              uri='http://hoge:8080/',
                              user='hoge',
                              passwd='hogehoge')
    opener = urllib2.build_opener(auth_handler)
    urllib2.install_opener(opener)
    page = urllib2.urlopen('http://hagenas2.home:8080/?plugin=csv&date='+year+month)
    u = unicode(page.read(),'euc_jp')
    pre = re.search('
(.*?)',u,re.DOTALL)
    for line in pre.group(1).splitlines():
        c = re.match(r'"(\d+)","(.*?)","(.*?)","(\d+)","(.*?)","(.*?)","(.*?)"',line)
        if c:
            try:
                fmt = u'{4}-{5}-{0:02d},payment,{1},-,-,,,{3},(プレミアム会員で表示),0,{2},(プレミアム会員で表示),(プレミアム会員で表示),(プレミアム会員で表示),(プレミアム会員で表示)\r'.format(int(c.group(1)),himoku[c.group(2)],c.group(4),c.group(6),year,month)
            except:
                print c.group(0).encode('cp932')
            fp.write(fmt.encode('cp932'))

for year in ['2008','2009','2010','2011','2012','2013','2014','2015']:
    fp = open('hoge_kakeibo'+year+'.csv','w')
    fp.write(u'日付,方法,カテゴリ,ジャンル,支払元,入金先,商品,メモ,場所,通貨,収入,支出,振替,残高調整,通貨変換前の金額,集計の設定\r'.encode('cp932'))
    for month in ['01','02','03','04','05','06','07','08','09','10','11','12']:
        output_month(year,month,fp)
    fp.close()
 
#output_month('2016','01',fp)

コメント

このブログの人気の投稿

ST-M310 シフトレバーのカバー開け

通勤用のCylva F24のリアディレイラーの変速の調子が悪いので調整した。完ぺきではないし、購入してからもうすぐ2年、走行距離は5000Kmは超えているはずなのでシフトケーブルも見てみたいと思い、シフターの分解をやってみる。 マニュアルはこちら。 https://si.shimano.com/pdfs/dm/DM-SL0001-09-JPN.pdf 20ページがALTUS、つまりST-M310のはず。 ねじを外せば太鼓部分を隠しているカバーが取れるように見えるけど、自分の場合二つ問題が。 一つ目はカバーがブレーキレバー部分にぶつかって取れない。Cylva F24についているシフターはブレーキレバーと一体型になっている。型番はよくわからない。マニュアルはシフターのみしか書いていないので、蓋が簡単に取れるように見えるけど、ブレーキ部分にぶつかって上には外れない。結局ブレーキ部分に当たる側をマイナスドライバーで側面の高さ分持ち上げた。 二つ目は爪の存在が説明されていない。マニュアルにはひっかけ部分の説明があるけど、そもそもインジケーターの裏が爪になっていてカバーが引っ掛かっている。この爪は真ん中に3mmぐらいの間があるので、ここにマイナスドライバを突っ込んでてこの原理で無理やり開ける必要がある。 カバーを外すとたぶんインジケーターが吹っ飛ぶけど、これは見れば直す方法はわかる。 で、中身を確認したけどきれいなもんでさびなどないし、ワイヤーの切れ・ほつれもなかった。

Ride with GPSで作成したルートのgpxファイルとOruxMapsの関係

Ride with GPSのAndroidアプリによるナビゲーションはOruxMapsと比較して告知がしつこくない。設定があまり多くないので仕方がないが、キューシートのポイントに対して一回しかアナウンスがない(もう一回ぐらいあるかな?)。またルート外に出た場合は地味な警告音と文字の通知しかない。 OruxMapsだと、ポイントの何メートル前で警告を出すか、最大何回出すか指定できる。街中だとうるさいぐらいしつこくアナウンスが出る。同様にルート外に出た場合も、しつこくしつこくアナウンスが出る。 たぶんブルベだとこれぐらいしつこい方がミスコースをなくすためにはいいと思う。 そうすると、Ride with GPSで作成したルートを使ってOruxMapsでナビゲーションするのがよい。 色々試した感じではGPXトラックのExportで、経路マーカーとしてPOIを含めると経路マーカーとしてキューを含めるをチェックすると、POIとキューがgpxのWayPointとしてExportされる。 キュー キューはWayPointとしてExportされる。RWGPSの「種類」として選んだものがnameに入り、注記に入れたものがdescとcmtに入る。   <wpt lon="139.5624979" lat="35.5408905">     <name>Straight</name>     <cmt>PC1</cmt>     <desc>PC1</desc>     <sym>Dot</sym>     <type>Dot</type>   </wpt>   POI POIの名前として入力したものはnameに入る。 <wpt lon="139.60360027326055" lat="35.565638161972615"> <name>フオトチェック</name> <sym>Dot</sym> <type>Dot</type> ...

Bryton 420 gpxデータ

Google マイマップでルートを引き、KMZファイルをGPS Visualizer ConverterでGPXファイルに変換してBryton Activeに転送し、Bryton 420に転送する。 車で通れないルートを通るために、マイマップ上で車のルートと徒歩のルートを織り交ぜてルートを引いたものをBryton Activeに転送したら、対応していないGPXファイルである、とのエラーが出た。 しかたがないのでルートを分割して対応した。