有效的JSON,但“无法解码JSON对象”

2024-05-08 14:38:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个“utf-8 without BOM”编码的文件中有一个非常短的JSON代码:

{ "paths": ["A:\\path\\to\\dir"],
  "anotherPath": "os.path.join(os.path.dirname( __file__ ), '..')"
}

我用不同的在线JSON验证器确保了它的有效性。 但是下面的Python代码。。。在

^{pr2}$

。。。我收到这个错误:

No JSON object could be decoded

我知道路径是正确的,因为我在不同的地方成功地阅读了它的内容。 有什么问题吗?在


Tags: 文件topath代码json编码osdir
1条回答
网友
1楼 · 发布于 2024-05-08 14:38:43

问题是没有BOM,实际上没有编码为UTF-8的文件。在

您可以生成一个文件,该文件的编码方式如下:

u='''{ "paths": ["A:\\path\\to\\dir"],
  "anotherPath": "os.path.join(os.path.dirname( __file__ ), '..')"
}'''
s=u.encode('utf-8')
with open('test.json', 'wb') as f:
    f.write(s)

(是否需要'b'取决于您使用的是python2还是python3,以及您是在Windows还是Unix上。但如果没有必要,那是无害的。)

现在,如果您对该文件运行代码,它就可以工作了。在

但是您可以将test.json文件与working\\path\\to\\myProgram.conf文件进行比较,看看有什么区别。(大多数非Windows系统都带有命令行工具,如hexdump;在Windows上,您可能需要一点爱好者才能发现差异。)

相关问题 更多 >