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

时间:2017-10-10 20:19:15

标签: python json macos

所以我在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);

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

  

运行服务:   Traceback(最近一次调用最后一次):     文件“update_checker.py”,第6行,in       service_list = json.load(service_file)     文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py”,第290行,载入中       ** KW)     文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/init.py”,第338行,载入中       return _default_decoder.decode(s)     文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py”,第366行,解码       obj,end = self.raw_decode(s,idx = _w(s,0).end())     在raw_decode中输入文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py”,第382行       obj,end = self.scan_once(s,idx)   ValueError:无效的控制字符位于:第2行第22列(字符23)

有人可以告诉我发生了什么事吗? 提前谢谢!

1 个答案:

答案 0 :(得分:5)

你有聪明的引用(或正如其他人所说,某种类型的基于unicode的引用)。你需要有常规的双引号。查看services的结束语:

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

需要成为:

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