| import pickle | |
| import os | |
| import json | |
| import prettytable as pt | |
| import numpy as np | |
| import math | |
| import logging | |
| logger = logging.getLogger(__name__) | |
| def read_json_file(filename): | |
| with open(filename, 'r') as fp: | |
| data = fp.readlines() | |
| if len(data) == 1: | |
| data = json.loads(data[0]) | |
| else: | |
| data = [json.loads(line) for line in data] | |
| return data | |
| def save_json_data(data_dir, filename, data): | |
| os.makedirs(data_dir, exist_ok=True) | |
| file_name = os.path.join(data_dir, filename) | |
| with open(file_name, 'w') as output: | |
| if type(data) == list: | |
| if type(data[0]) in [str, list,dict]: | |
| for item in data: | |
| output.write(json.dumps(item)) | |
| output.write('\n') | |
| else: | |
| json.dump(data, output) | |
| elif type(data) == dict: | |
| json.dump(data, output) | |
| else: | |
| raise RuntimeError('Unsupported type: %s' % type(data)) | |
| logger.info("saved dataset in " + file_name) | |
| def save_pickle_data(path_dir, filename, data): | |
| full_path = path_dir + '/' + filename | |
| print("Save dataset to: %s" % full_path) | |
| if not os.path.exists(path_dir): | |
| os.makedirs(path_dir) | |
| with open(full_path, 'wb') as output: | |
| pickle.dump(data, output,protocol=4) | |