我有一台存储数据的linux机器。我们可以通过某些命令以json格式获取该数据。
当我使用python
加载该json文件时:
f = open(filename)
json.load(f)
它按预期正常工作。
但是当我在记事本文本编辑器中打开该文件并修改某个变量的值(例如从java_v5到java_v6),并执行上面提到的相同操作时,我得到了
File "D:\userdata\aagoyal\Desktop\TPD\Import_11_3\json_to_adv.py", line 26, in __init__
self.dump = json.load(self.f)
File "C:\Python27\lib\json\__init__.py", line 290, in load
**kw)
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 383, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded`
我不知道为什么会发生这种情况!奇怪的是,仅通过修改某个变量值中的单个字符(即修改字典键的值),我就会收到此错误。
有人可以帮帮我吗?
答案 0 :(得分:0)
根据上面Martijn Pieters
和Mark Winterbottom
的评论,并非每个编辑器都应该用于修改JSON数据,因为这可能会改变JSON数据的编码。某些文本编辑器(如记事本)可能不支持此类编码
Json使用UTF-8
编码而Notepad
没有。因此,只应使用编码兼容的编辑器。
因为它不仅仅是关于JSON string
的有效性,还关于encoding
。