【问题标题】:JSON Error while converting json into python directory [closed]将 json 转换为 python 目录时出现 JSON 错误 [关闭]
【发布时间】:2023-01-12 16:01:47
【问题描述】:

我正在尝试使用以下代码将 JSON 数据转换为 Python 字典:

import  json

handle = open("json_input.json", "r")
content = handle.read()

d = json.loads(content)
print(d)

但是不断收到以下错误:

 File "C:\Users\me\PycharmProjects\pythonProject1\main.py", line 7, in <module>
    d = json.loads(content)
        ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\me\AppData\Local\Programs\Python\Python311\Lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\me\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\me\AppData\Local\Programs\Python\Python311\Lib\json\decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
               ^^^^^^^^^^^^^^^^^^^^^^
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 7 column 5 (char 12

请求帮助解决此问题。

【问题讨论】:

    标签: python json


    【解决方案1】:

    错误:"JSONDecodeError: Expecting property name enclosed in double quotes"只是意味着 json_input.json 不是正确的 JSON。

    JSON 数据应该用双引号引起来。

    您需要先修复 json 文件。

    【讨论】:

    • 非常感谢你。示例 JSON 文本文件确实存在问题。我更正了示例 JSON 文本文件,现在问题已解决。
    【解决方案2】:

    如果您无法控制输入的 json 文件。您可以使用名为 Abstract Syntax Tree(ast) 的辅助函数 literal_eval,如下所示:

    import ast
    
    handle = open("json_input.json", "r")
    content = handle.read()
    data = ast.literal_eval(content)
    print(type(data), data)
    

    【讨论】:

    • 感谢您的建议。但是,由于我仍在学习使用代码 json.loads 来读取 JSON 文件,因此它并没有引导我朝着正确的方向前进。但再次感谢您花时间帮助我。
    猜你喜欢
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 2016-12-18
    • 2022-11-07
    • 2016-11-13
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    相关资源
    最近更新 更多