【问题标题】:Json file not readable?Json 文件不可读?
【发布时间】:2026-01-25 01:45:01
【问题描述】:

我对 Python 很陌生,所以我提前为我的愚蠢问题道歉。

我正在尝试运行this app

这是 Python 代码:

def load_json(path):
    with open(path, "r") as json_file:
        data = json.load(json_file)
        validate(instance=data, schema=schema)
        return data

我按照所有步骤操作并认为我做的一切都是正确的,但是一旦我通过终端运行应用程序并提供所需的信息(客户端 ID、客户端密钥和 Json 元数据的路径),我就会收到以下错误:

不可读。”

我尝试更改 JSON 文件的位置并重命名文件,但均未成功。我究竟做错了什么?谢谢。

【问题讨论】:

  • 这看起来像是文件的权限或您运行代码的方式有问题,而不是代码本身。
  • 您好,欢迎来到 *! path 是否包含尖括号(即<>)?
  • @chepner 我试图查看文件权限,但一切正常:/
  • @DanielWalker 路径本身不包括尖括号,但根据说明,它们是正确运行程序所必需的。但是我也尝试删除尖括号,但得到了同样的错误:C:\Users\Administrator\Desktop\spotiminder-master\spotiminder\playlist.json is not readable.

标签: python json


【解决方案1】:

您正在尝试在"<C:\Users\Administrator\Desktop\spotiminder-master\playlist.json>" 中查找您的文件

但我想,你的文件在这里:"C:\Users\Administrator\Desktop\spotiminder-master\playlist.json" 删除路径的<>,它会起作用

【讨论】:

  • 路径本身不包含尖括号,但根据说明,它们是正确运行程序所必需的。但是我也尝试删除尖括号,但得到了同样的错误:C:\Users\Administrator\Desktop\spotiminder-master\spotiminder\playlist.json is not readable.
【解决方案2】:

观察当我尝试使用您在 IPython 会话中使用的文件的路径时会发生什么:

In [1]: path = "C:\Users\Administrator\Desktop\spotiminder-master\playlist.json"
  File "<ipython-input-1-1980786d97e2>", line 1
    path = "C:\Users\Administrator\Desktop\spotiminder-master\playlist.json"
                                                                            ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

在 Python 字符串中,\U 具有特殊含义。它是 Unicode 转义序列的开始。

尝试使用以下文件名(注意双反):C:\\Users\Administrator\Desktop\spotiminder-master\playlist.json

【讨论】:

  • 更好:使用原始字符串,例如path = r”C:\….”,它不会评估转义序列。
  • @KirkStrauser 程序从命令行获取文件名。
  • @RolandSmith 尝试了你所说的,现在成功了!!但不幸的是,当它尝试打开 Spotify 身份验证页面时,我们收到一条新的错误消息:INVALID_CLIENT:我检查了无效的客户端如果在 Spotify 开发人员页面中我添加了正确的重定向 URL,一切看起来都很好,不知道是什么问题现在:/
  • @AriLeff 我不使用 spotify,所以对此我无能为力。