Spaces:
Running
Running
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 |