加载修改后的json时Python抛出错误
我有一台存储数据的linux机器。我们可以通过一些命令获得json格式的数据。 当我使用python加载json文件时:加载修改后的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
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上修改文件,文件是如何共享的?