2017-10-10 37 views
1

所以我有一個問題,在我的MacBook上閱讀python中的json文件。這個問題很奇怪,因爲我能夠直接閱讀json文件直到幾分鐘前。這發生在我將xcode中舊的json文件更改爲新的json文件時,請參閱下文,有人可以幫我解決嗎?Python突然沒有讀取MAC OS X上的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)

有人可以告訴我發生了什麼事嗎? 在此先感謝!

+2

是,實際的JSON?它有智能報價和常規報價混合在一起。 –

+0

這些是實際的json文件,報價用法有什麼錯誤嗎? –

+0

是的,這是你的問題的原因。 –

回答

5

你有聰明的引號(或者像其他人所說的那樣,某種類型的基於unicode的引用)。你需要定期雙引號。看看最終報價services

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

需求,成爲:

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