diff --git a/house_operation最终版本 b/house_operation最终版本 new file mode 100644 index 0000000..3cc7734 --- /dev/null +++ b/house_operation最终版本 @@ -0,0 +1,77 @@ +import json +import os + +#v1 +HOUSE_FILE = "./data/houses.json" + +def init_db(): + """初始化房源数据文件""" + os.makedirs("./data", exist_ok=True) + if not os.path.exists(HOUSE_FILE): + with open(HOUSE_FILE, 'w', encoding='utf-8') as f: + json.dump([], f, ensure_ascii=False, indent=4) + +def read_houses(): + """读取所有房源""" + init_db() + with open(HOUSE_FILE, 'r', encoding='utf-8') as f: + return json.load(f) + +def write_houses(houses): + """写入房源""" + with open(HOUSE_FILE, 'w', encoding='utf-8') as f: + json.dump(houses, f, ensure_ascii=False, indent=4) + +#v2 +STACK_FILE = "./data/stack_data.json" + +def init_stack_db(): + """初始化栈文件""" + os.makedirs("./data", exist_ok=True) + if not os.path.exists(STACK_FILE): + init_data = {"operation_stack": [], "browse_stack": []} + with open(STACK_FILE, 'w', encoding='utf-8') as f: + json.dump(init_data, f, ensure_ascii=False, indent=4) + +def read_stack(stack_type): + """读取指定栈""" + init_stack_db() + with open(STACK_FILE, 'r', encoding='utf-8') as f: + data = json.load(f) + return data.get(f"{stack_type}_stack", []) + +def write_stack(stack_type, new_stack): + """写入指定栈""" + init_stack_db() + with open(STACK_FILE, 'r', encoding='utf-8') as f: + data = json.load(f) + data[f"{stack_type}_stack"] = new_stack + with open(STACK_FILE, 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=4) + +# v3 +MATRIX_FILE = "./data/matrix.json" + +def init_matrix_db(): + """初始化小区邻接矩阵文件""" + os.makedirs("./data", exist_ok=True) + if not os.path.exists(MATRIX_FILE): + init_data = { + "community_list": [], # 小区名称列表(一维数组) + "distance_matrix": [] # 小区距离二维数组(邻接矩阵) + } + with open(MATRIX_FILE, 'w', encoding='utf-8') as f: + json.dump(init_data, f, ensure_ascii=False, indent=4) + +def read_matrix_data(): + """读取小区列表和距离邻接矩阵""" + init_matrix_db() + with open(MATRIX_FILE, 'r', encoding='utf-8') as f: + return json.load(f) + +def write_matrix_data(matrix_dict): + """保存小区列表和距离邻接矩阵""" + init_matrix_db() + with open(MATRIX_FILE, 'w', encoding='utf-8') as f: + json.dump(matrix_dict, f, ensure_ascii=False, indent=4) +