jl/parse.py

45 lines
1.2 KiB
Python

import json
def parse_journal_entries(file_path):
entries = []
current_entry = {}
with open(file_path, 'r') as file:
for line in file:
line = line.strip()
if line.startswith(''):
account, amount = line[1:].split()
current_entry['entries'].append({
'account': account,
'amount': float(amount)
})
elif line:
if current_entry:
entries.append(current_entry)
current_entry = {'date': line, 'entries': []}
if current_entry:
entries.append(current_entry)
return entries
def convert_to_json(entries):
formatted_entries = []
for entry in entries:
formatted_entry = {
'date': entry['date'],
'entries': []
}
for sub_entry in entry['entries']:
formatted_entry['entries'].append({
sub_entry['account']: sub_entry['amount']
})
formatted_entries.append(formatted_entry)
return json.dumps(formatted_entries, indent=4)
file_path = 'main.gl'
journal_entries = parse_journal_entries(file_path)
json_data = convert_to_json(journal_entries)
print(json_data)