使用 json5 读取 .json 文件时出现 ValueError 异常“п”
ValueError exception "п" while reading .json file with json5
目前,我正在尝试在 PyCharm 中制作最简单的 JSON5 reader,它从某些 windows 路径读取文件。
我遇到的是一个对我来说完全未知的错误,在我第 5 次或第 6 次尝试读取 JSON5 之后似乎突然出现了。
阅读 .json 一切顺利,直到发生某些事情(我不确定到底是什么)并且它突然无处不在地发现一个“п”(Ctrl + F 没有给出任何结果)并开始每次都抛出异常。
我搜索了很多网站,但没有发现任何有用的信息,也没有发现任何其他遇到过该问题的人。
C:\Users\User\jsonTest\venv\Scripts\python.exe "C:/Users/User/jsonTest/test.py"
Traceback (most recent call last):
File "C:\Users\User\jsonTest\test.py", line 3, in <module>
jsonData = json5.load(resultsFile)
File "C:\Users\User\jsonTest\venv\lib\site-packages\json5\lib.py", line 46, in load
return loads(s, encoding=encoding, cls=cls, object_hook=object_hook,
File "C:\Users\User\jsonTest\venv\lib\site-packages\json5\lib.py", line 82, in loads
raise ValueError(err)
ValueError: <string>:1 Unexpected "п" at column 1
Process finished with exit code 1
我正在执行的代码:
import json5
with open("level.json", "r+") as resultsFile:
jsonData = json5.load(resultsFile)
来自level.json的数据:
{"random": 5, "data": 1}
这是 Unicode byte-order 标记的开始。您应该将 encoding='utf-8-sig'
添加到 open
调用中,让它查找 BOM。
目前,我正在尝试在 PyCharm 中制作最简单的 JSON5 reader,它从某些 windows 路径读取文件。
我遇到的是一个对我来说完全未知的错误,在我第 5 次或第 6 次尝试读取 JSON5 之后似乎突然出现了。
阅读 .json 一切顺利,直到发生某些事情(我不确定到底是什么)并且它突然无处不在地发现一个“п”(Ctrl + F 没有给出任何结果)并开始每次都抛出异常。
我搜索了很多网站,但没有发现任何有用的信息,也没有发现任何其他遇到过该问题的人。
C:\Users\User\jsonTest\venv\Scripts\python.exe "C:/Users/User/jsonTest/test.py"
Traceback (most recent call last):
File "C:\Users\User\jsonTest\test.py", line 3, in <module>
jsonData = json5.load(resultsFile)
File "C:\Users\User\jsonTest\venv\lib\site-packages\json5\lib.py", line 46, in load
return loads(s, encoding=encoding, cls=cls, object_hook=object_hook,
File "C:\Users\User\jsonTest\venv\lib\site-packages\json5\lib.py", line 82, in loads
raise ValueError(err)
ValueError: <string>:1 Unexpected "п" at column 1
Process finished with exit code 1
我正在执行的代码:
import json5
with open("level.json", "r+") as resultsFile:
jsonData = json5.load(resultsFile)
来自level.json的数据:
{"random": 5, "data": 1}
这是 Unicode byte-order 标记的开始。您应该将 encoding='utf-8-sig'
添加到 open
调用中,让它查找 BOM。