Python加载修改后的json抛出错误

时间:2014-11-28 10:32:19

标签: python json linux python-2.7

我有一台存储数据的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`

我不知道为什么会发生这种情况!奇怪的是,仅通过修改某个变量值中的单个字符(即修改字典键的值),我就会收到此错误。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

根据上面Martijn PietersMark Winterbottom的评论,并非每个编辑器都应该用于修改JSON数据,因为这可能会改变JSON数据的编码。某些文本编辑器(如记事本)可能不支持此类编码 Json使用UTF-8编码而Notepad没有。因此,只应使用编码兼容的编辑器。

因为它不仅仅是关于JSON string的有效性,还关于encoding