from datetime import date from tinydb import TinyDB, Query class User: def __init__(self, db_file='user_data.json'): """初始化用户管理,自动打开并加载 JSON 数据文件。""" self.db_file = db_file self.db = TinyDB(self.db_file) self.user_query = Query() def add_user(self, user_data): """添加新的用户""" if not self.db.search(self.user_query.user_id == user_data['user_id']): self.db.insert(user_data) else: print(f"User with ID {user_data['user_id']} already exists.") def get_user(self, user_id): """根据 user_id 获取用户信息""" result = self.db.search(self.user_query.user_id == user_id) return result[0] if result else None def update_user(self, user_id, updated_data): """更新用户信息""" self.db.update(updated_data, self.user_query.user_id == user_id) def delete_user(self, user_id): """删除用户""" self.db.remove(self.user_query.user_id == user_id) def get_all_users(self): """获取所有用户""" return self.db.all() # 用户数据结构示例 # user_data = { # 'user_id': 'user123', # 'select_course': ['course1', 'course2'], # 'course_process_dict': { # 'course1': { # 'course_process': { # 'lesson_processs': [ # { # 'lesson_process': [ # { # 'chapter_info': { # 'dialog': ['This is chapter 1 dialog'], # 'score': 85, # 'is_rebuttal': True, # 'rebuttal_score': 90 # } # }, # { # 'chapter_info': { # 'dialog': ['This is chapter 2 dialog'], # 'score': 75, # 'is_rebuttal': False, # 'rebuttal_score': 0 # } # } # ] # } # ], # 'course_put_in_date': date(2024, 1, 1), # 'course_last_study_date': date(2024, 12, 25), # 'course_total_study_time': 120 # 总学习时间:分钟 # } # }, # 'course2': { # 'course_process': { # 'lesson_processs': [ # { # 'lesson_process': [ # { # 'chapter_info': { # 'dialog': ['This is course2 chapter 1 dialog'], # 'score': 88, # 'is_rebuttal': False, # 'rebuttal_score': 0 # } # } # ] # } # ], # 'course_put_in_date': date(2024, 2, 1), # 'course_last_study_date': date(2024, 12, 24), # 'course_total_study_time': 90 # } # } # } # } # updated_user_data = { # 'select_course': ['course1', 'course3'] # } # # 创建 User 实例 # user_list = User() # # 添加用户 # user_list.add_user(user_data) # # 获取用户信息 # user = user_list.get_user('user123') # print(user) # # 更新用户选择的课程 # user_list.update_user('user123', updated_user_data) # # 获取所有用户 # all_users = user_list.get_all_users() # print(all_users) # # 删除用户 # user_list.delete_user('user123')