首页 > 解决方案 > 无法在我的简单 python 代码中读取 JSON 文件

问题描述

当我尝试读取 JSON 文件时出现以下错误,不确定需要更正什么:

C:\Users\prabhjot2600\PycharmProjects\PythonPractise\venv\Scripts\python.exe C:/Users/prabhjot2600/Desktop/Prabh/alien_invasion/test.py
Traceback (most recent call last):
  File "C:/Users/prabhjot2600/Desktop/Prabh/alien_invasion/test.py", line 26, in <module>
    data = json.loads(people_string)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.1776.0_x64__qbz5n2kfra8p0\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 11 column 21 (char 192)

我的代码只是读取一个 JSON 文件并打印它的数据。我也检查了我的 JSON 数据,它看起来是正确的,还对其进行了格式化,以查看是否还有任何错误,但仍然无法读取 JSON

import json

people_string = '''
{
  "people": [
    {
      "name": "Prabhjot Singh",
      "phone": "9999596310",
      "emails": [
        "prabh@noemail.com",
        "prabhjot@ranamail.com"
      ],
      "hasLicence": True
    },
    {
      "name": "Sunny Rana",
      "phone": "9999988888",
      "emails": null,
      "hasLicence": False
    }
  ]
}
'''


data = json.loads(people_string)
print(data)

标签: pythonjsonpython-3.x

解决方案


JSON 代表JavaScript 对象表示法
所以它是 Javascript 语法的子集。
Javascript 使用truefalse关键字作为文字布尔值。
(而 python 使用Trueand False)。

因此,您应该使用trueandfalse而不是Trueand False
有关详细语法,请参阅https://www.json.org/json-en.html


推荐阅读