【问题标题】:Expecting property name enclosed ... || Can't open json file期望包含的属性名称... ||无法打开json文件
【发布时间】: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 解析它,看这个帖子:stackoverflow.com/questions/29959191/…
  • 谢谢!!!!!!!!!!!!!!!!!!!!!!!!

标签: json python-3.x


【解决方案1】:

我认为 JSON 文件中不允许使用 C 样式的 cmets(至少 Python JSON 解析器不允许它们),因此请尝试删除它们。

编辑:正如@Marcus 在 cmets 中所建议的那样,this question 有一些用于解析具有 cmets 的 JSON 文件的选项,包括使用 jsminjstylesonjsoncomment 等包,这些都是在 PyPI 上,可通过 pip 安装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    相关资源
    最近更新 更多