Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载修改后的json时Python抛出错误_Python_Json_Linux_Python 2.7 - Fatal编程技术网

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

加载修改后的json时Python抛出错误,python,json,linux,python-2.7,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

我有一台存储数据的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`
我不明白为什么会这样!奇怪的是,仅仅通过修改某个变量值中的单个字符(即修改字典键的值),我就得到了这个错误


有人能帮我吗?

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


因为它不仅关系到
JSON字符串的有效性,还关系到
编码。

它仍然是JSON吗?您可以将其签入,很可能您的编辑器更改了超出您预期的内容。如果没有看到您现在拥有的JSON,就无法确定这是什么。我在那里进行了检查。它是有效的JSON。修改后文件的权限是什么?您使用哪个编辑器来修改?可能是因为更改了文本的编码而导致了这个问题。@Gauranga:但记事本不是Linux编辑器。如果要在Windows上修改文件,文件是如何共享的?