期望包含的属性名称... ||无法打开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)

Python/Json:期望用双引号括起来的属性名称

尝试在 Python 中解析 JSON。 ValueError:期望属性名称[重复]

Chai 断言,无法使用应该/期望来识别属性

VBA 无法打开包含动态名称的备份文件

package.json文件属性