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