Expecting '' delimiter: line 1 column338941 (char 338940)

2025年11月21日 03:47 processing

错误信息

出现错误:Traceback(most recent calllast):File "D:/Fallout 4/mod/AnimeRace Littleko x Hachiko !! 2024.12.07/AnimeRace Mod Mo2/plugins\rootbuilder\rootbuilder\plugins\rootbuilder_plugin_mapper.py",ine 19, in <lambda>self.organiser.onAboutToRun(lambda appName: self.build(appName))File "D:/Fallout 4/mod/AnimeRace Littleko x Hachiko !! 2024.12.07/AnimeRace Mod Mo2/plugins\rootbuilder\rootbuilder\plugins\rootbuilder_plugin_mapper.py",line 43, in buildself.rootBuilder.build0File *D:/Fallout 4/mod/AnimeRace Littleko x Hachiko !! 2024.12.07/AnimeRace Mod Mo2/plugins\rootbuilder\rootbuilder\rootbuilder.py*.line 42, in buildself.backup.backup0File *D:/Fallout 4/mod/AnimeRace Littleko x Hachiko !! 2024.12.07/AnimeRace Mod Mo2/plugins\rootbuilder\rootbuilder\(modules\rootbuilder_backup.py", line27, in backupfileData = self.getFileData0File “D:/Fallout 4/mod/AnimeRace Littleko x Hachiko !! 2024.12.07/AnimeRace Mod Mo2/plugins\rootbuilder\rootbuilder\(modules\rootbuilder_backup.py", line135, in getFileDatafileData = json.load(open(self.paths.rootCacheFilePathO."r",encoding="utf-8"))File "json\_init_-py", line 293, in loadFile "json\_init_py", line 357, in loadsFile "json\decoder.py", line 337, in decodeFile "json\decoder.py", line 353, in raw_decodejson.decoder.JSONDecodeError: Expecting '' delimiter: line 1 column338941 (char 338940)

AI 解决方案

错误翻译

原文:json.decoder.JSONDecodeError: Expecting '' delimiter: line 1 column 338941 (char 338940)
译文:JSON解码错误:期望单引号分隔符,在第1行第338941列(字符位置338940)

原因分析

该错误发生在RootBuilder插件读取JSON缓存文件时,JSON文件格式损坏或编码错误:

  • 根本原因:JSON缓存文件包含格式错误或不完整的JSON数据

  • 出错位置rootbuilder_backup.py第135行,读取rootCacheFilePath文件时

  • 具体上下文:JSON解析器在字符位置338940处期望看到单引号分隔符,但实际数据不符合JSON格式规范
  • 解决方案

    # 修复方法1:添加错误处理和文件验证
    def getFileData(self):
        try:
            with open(self.paths.rootCacheFilePath, "r", encoding="utf-8") as f:
                # 先读取内容进行验证
                content = f.read()
                if not content.strip():
                    # 如果文件为空,返回空字典
                    return {}
                fileData = json.loads(content)
                return fileData
        except json.JSONDecodeError as e:
            print(f"JSON文件损坏,重新创建缓存: {e}")
            # 删除损坏的文件并返回空数据
            if os.path.exists(self.paths.rootCacheFilePath):
                os.remove(self.paths.rootCacheFilePath)
            return {}
        except Exception as e:
            print(f"读取文件错误: {e}")
            return {}
    
    # 修复方法2:如果上述方法不适用,直接删除损坏的缓存文件
    import os
    if os.path.exists("D:/Fallout 4/mod/AnimeRace Littleko x Hachiko !! 2024.12.07/AnimeRace Mod Mo2/plugins/rootbuilder/cache.json"):
        os.remove("D:/Fallout 4/mod/AnimeRace Littleko x Hachiko !! 2024.12.07/AnimeRace Mod Mo2/plugins/rootbuilder/cache.json")
    

    ️ 预防措施

    • ✅ 添加文件完整性检查:在读取JSON文件前先检查文件大小和格式有效性

    • ✅ 使用安全写入方式:写入JSON文件时使用原子操作,避免写入过程中断导致文件损坏

    • 推荐工具:使用JSONLint等工具验证JSON文件格式,或添加文件备份机制

    建议重启Mod Organizer 2,RootBuilder会自动重新生成正确的缓存文件。