outformat = "qif"
# outformat = "csv"
+
+class UnknownAccountError(Exception):
+ pass
+
+
+def get_account(data):
+ account_id = data["transactions"][0]["account_id"]
+ if account_id == "":
+ return "Accounts:Monzo"
+ elif account_id == "":
+ return "Accounts:Joint Account"
+
+ raise UnknownAccountError(account_id)
+
+
if __name__ == "__main__":
- if outformat == "qif":
- print("!Account")
- print("NCurrent Accounts:Monzo")
- print("^")
- print("!Type:Bank")
- cnt = 1
with open(sys.argv[1], 'r') if len(sys.argv) > 1 else sys.stdin as fp:
data = json.load(fp)
+
+ if outformat == "qif":
+ print("!Account")
+ print("NCurrent {}".format(get_account(data)))
+ print("^")
+ print("!Type:Bank")
+
+ cnt = 1
for t in data.get("transactions"):
+ if t.get("decline_reason", ""):
+ continue
+
try:
date = datetime.strptime(t["created"], "%Y-%m-%dT%H:%M:%S.%fZ")
except ValueError:
else:
payee = t["merchant"]["name"]
memo = t["description"]
+ try:
+ memo = "Tab: {}".format(t["tab"]["name"])
+ except KeyError:
+ pass
+
memo += "\n{local_amount} {local_currency}".format(**t)
notes = t["notes"]
if outformat == "csv":