EZ-Crossword / Strict_json.py
Ujjwal123's picture
copied the whole api code from django and updated the dockerfile
a04b340
import json
def json_CA_json_converter(json_file_path, is_path):
if is_path:
with open(json_file_path, "r") as file:
data = json.load(file)
else:
data = json_file_path
json_conversion_dict = {}
rows = data['size']['rows']
cols = data['size']['cols']
clues = data['clues']
answers = data['answers']
json_conversion_dict['metadata'] = {'rows': rows, 'cols': cols}
across_clue_answer = {}
down_clue_answer = {}
for clue, ans in zip(clues['across'], answers['across']):
split_clue = clue.split(' ')
clue_num = split_clue[0][:-1]
clue_ = " ".join(split_clue[1:])
clue_ = clue_.replace("[", '').replace("]", '')
across_clue_answer[clue_num] = [clue_, ans]
for clue, ans in zip(clues['down'], answers['down']):
split_clue = clue.split(' ')
clue_num = split_clue[0][:-1]
clue_ = " ".join(split_clue[1:])
clue_ = clue_.replace("[", '').replace("]", '')
down_clue_answer[clue_num] = [clue_, ans]
json_conversion_dict['clues'] = {'across' : across_clue_answer, 'down' : down_clue_answer}
grid_info = data['grid']
grid_num = data['gridnums']
grid_info_list = []
for i in range(rows):
row_list = []
for j in range(cols):
if grid_info[i * rows + j] == '.':
row_list.append('BLACK')
else:
if grid_num[i * rows + j] == 0:
row_list.append(['', grid_info[i * rows + j]])
else:
row_list.append([str(grid_num[i * rows + j]), grid_info[i * rows + j]])
grid_info_list.append(row_list)
json_conversion_dict['grid'] = grid_info_list
return json_conversion_dict