我正在尝试使用以下代码将JSON数据转换为Python字典:
import json
handle = open("json_input.json", "r")
content = handle.read()
d = json.loads(content)
print(d)
但是一直得到以下错误:
File "C:UsersmePycharmProjectspythonProject1main.py", line 7, in <module>
d = json.loads(content)
^^^^^^^^^^^^^^^^^^^
File "C:UsersmeAppDataLocalProgramsPythonPython311Libjson__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersmeAppDataLocalProgramsPythonPython311Libjsondecoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersmeAppDataLocalProgramsPythonPython311Libjsondecoder.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
请求帮助解决这个问题。
错误:"JSONDecodeError: Expecting property name enclosed in double quotes"
简单地表示json_input。json不是一个正确的json
JSON数据应该用双引号。
你需要先修复json文件。
如果你对输入json文件没有任何控制。您可以使用抽象语法树(ast)助手函数literal_eval,如下所示:
import ast
handle = open("json_input.json", "r")
content = handle.read()
data = ast.literal_eval(content)
print(type(data), data)