You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
1.0 KiB
Python

2 years ago
"""
Parses the spreadsheet into a tree structure
"""
import csv
import os.path
import json
columns = 4
position = [ 0 for _ in range(columns) ]
tree = []
def parse_column_chunk (column, start):
label = data[start][column]
end = start
children = []
while end + 1 < len(data) and (data[end + 1][column] == label or data[end + 1][column] == ''):
end += 1
if column + 1 < columns:
child_end = start
while child_end <= end and child_end < len(data):
_, child_end, child = parse_column_chunk(column + 1, child_end)
child_end += 1
children.append(child)
return (start, end, { 'label': label, 'children': children})
basepath = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(basepath, 'data.csv'), 'r') as csvfile:
reader = csv.reader(csvfile)
data = [row for row in reader]
start = 0
while start < len(data):
_, end, node = parse_column_chunk(0, start)
start = end + 1
tree.append(node)
json.dump(tree, open(os.path.join(basepath, 'unease.json'), 'w'), ensure_ascii=False)