期望包含的属性名称... ||无法打开json文件
Posted
技术标签:
【中文标题】期望包含的属性名称... ||无法打开json文件【英文标题】:Expecting property name enclosed ... || Can't open json file 【发布时间】:2019-08-06 17:08:40 【问题描述】:当你尝试打开一个 json 文件时,会出现这个错误
Traceback (most recent call last):
File "C:\Users\vlad0\AppData\Roaming\Python\Python36\site-packages\discord\client.py", line 227, in _run_event
await coro(*args, **kwargs)
File "c:\Users\vlad0\Desktop\bot\bot.py", line 577, in on_message
info = json.load(open('servers/'+str(server)+'/reports/'+str(user["MaxRepID"])+'/info.json'))
File "C:\py36\lib\json\__init__.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\py36\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\py36\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\py36\lib\json\decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 18 (char 19)
这是打开它的代码(路径正确)
info = json.load(open('servers/'+str(server)+'/reports/'+str(user["MaxRepID"])+'/info.json'))
json 文件
"Channel": "", /* ID */
"Created": "", /* Date */
"Author": "", /* who created */
"Is_closed": "False",
"Is_open": "False",
"Is_deleted": "False"
如您所见,双括号没有跳过,但错误是什么?
【问题讨论】:
JSON 不支持评论。您需要删除 cmets 才能正确解析。 如果你想用 cmets 解析它,看这个帖子:***.com/questions/29959191/… 谢谢!!!!!!!!!!!!!!!!!!!!!!!! 【参考方案1】:我认为 JSON 文件中不允许使用 C 样式的 cmets(至少 Python JSON 解析器不允许它们),因此请尝试删除它们。
编辑:正如@Marcus 在 cmets 中所建议的那样,this question 有一些用于解析具有 cmets 的 JSON 文件的选项,包括使用 jsmin、jstyleson 和 jsoncomment 等包,这些都是在 PyPI 上,可通过 pip 安装。
【讨论】:
以上是关于期望包含的属性名称... ||无法打开json文件的主要内容,如果未能解决你的问题,请参考以下文章
JSON ValueError:期望属性名称:第 1 行第 2 列(字符 1)