Skip to main content
 首页 » 编程设计

Python 突然不在 MAC OS X 上读取 json 文件

2025年05月04日22bluestorm

所以我在我的 macbook 上用 python 读取 json 文件时遇到了问题。这个问题很奇怪,因为直到几分钟前我才能够读取 json 文件。当我将 xcode 中的旧 json 文件更改为新的 json 文件时发生这种情况,见下文,有人可以帮我吗?

旧的 JSON 文件:

{ 
    "service 1” : { 
        { 
            "name" : "service 1" 
        }, 
    } 
    "service 2" : { 
        { 
            "name" : "service 2" 
        } 
    } 
} 

新的 JSON 文件:

{ 
    "services” : [ 
        { 
            "name" : "service 1" 
        }, 
        { 
            "name" : "service 2" 
        } 
    ] 
} 

以下 python 脚本无法读取上述两个 json 文件:

import json 
 
print "Running services: " 
 
with open('service_list.json') as service_file: 
    service_list = json.load(service_file) 
    print(service_file); 

运行脚本时出现如下错误:

Running services: Traceback (most recent call last): File "update_checker.py", line 6, in service_list = json.load(service_file) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py", line 290, in load **kw) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py", line 338, in loads return _default_decoder.decode(s) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 366, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 382, in raw_decode obj, end = self.scan_once(s, idx) ValueError: Invalid control character at: line 2 column 22 (char 23)

谁能告诉我这是怎么回事? 提前致谢!

请您参考如下方法:

您有智能引号(或者如其他人所说,某种类型的基于 unicode 的引号)。你需要有常规的双引号。查看 services 的结尾引号:

{ 
    "services” : [ 
        { 
            "name" : "service 1" 
        }, 
        { 
            "name" : "service 2" 
        } 
    ] 
} 

需要成为:

{ 
    "services" : [ 
        { 
            "name" : "service 1" 
        }, 
        { 
            "name" : "service 2" 
        } 
    ] 
}