使用orjson加载JSON文件遇JSONDecodeError: str is not valid UTF-8如何解决?
解决orjson加载JSON时的UTF-8解码错误
针对你遇到的orjson加载JSON文件抛出JSONDecodeError: str is not valid UTF-8错误,可尝试以下几种处理方式:
改用二进制模式读取文件
orjson对字节流的处理更高效且严格,直接以二进制模式读取文件并传入orjson.loads,能跳过文本模式下的编码转换步骤,避免隐性编码问题:with open(file, 'rb') as jfile: lines = orjson.loads(jfile.read())处理带BOM的UTF-8文件
如果你的JSON文件是带UTF-8 BOM(字节顺序标记)的格式,标准json库会自动忽略BOM,但orjson不会。此时可指定utf-8-sig编码读取:with open(file, 'r', encoding="utf-8-sig") as jfile: lines = orjson.loads(jfile.read())替换无效UTF-8字节
若文件中存在少量无效UTF-8字节,标准json库会自动替换或忽略,但orjson会严格校验。可通过errors='replace'参数替换无效字节后再读取:with open(file, 'r', encoding="utf-8", errors='replace') as jfile: lines = orjson.loads(jfile.read())
内容的提问来源于stack exchange,提问作者Myky
相关产品推荐
相关产品推荐

