2015-10-23 43 views
0

我做這需要從服務器加載JSON文件,當我試圖解析該文件我遇到的Unexpected Token錯誤的Web應用程序。然後我發現,當兩個項目出現在一個文件中的問題發生意外標記錯誤對象

下面是兩個JSON項目:

{ 
    "黃南":{"id":10973,"name":"黃南","prov":"青海","latt":35.519549,"logi":102.015248},  
    "海北":{"id":10970,"name":"海北","prov":"青海","latt":36.954413,"logi":100.900998} 
} 

我已經試過JSON.parse鉻控制檯,json.loads在Python和JSONlint.com,他們都引發錯誤。

有趣的是,當我試圖單獨加載它們,沒有錯誤,但只要它們被加載一起,被拋出

誤差因此,誰能告訴我發生了什麼,以及如何避免這種情況? 謝謝你們,如果我的描述中有任何語法問題,我感到抱歉。

+1

我只是複製粘貼,在以jsonlint和它回來有效。 – idjaw

+0

逗號分隔兩個項目在哪裏? –

+0

對我來說既適合JSON也適合文字 – dandavis

回答

0

它沒有更多的信息猜測,但我猜的Python 2.x中沒有設置編碼,因爲除此之外沒有其他原因。

嘗試了3.4和2.7中最基本的操作。它在3.4中沒有問題。在2.7中,你需要使用utf-8或者你會得到一個錯誤。

這將與Python 3.x的工作,但在2.X

#!/usr/bin/env python3.4 
import json 
j = """{ 
    "黃南":{"id":10973,"name":"黃南","prov":"青海","latt":35.519549,"logi":102.015248}, 
    "海北":{"id":10970,"name":"海北","prov":"青海","latt":36.954413,"logi":100.900998} 
}""" 

o = json.loads(j) 
print(json.dumps(o,indent=1)) 

失敗這將在2.7上班,大概2.6太

#!/usr/bin/env python2.7 
# -*- coding: utf-8 -*- 
import json 
j = """{ 
    "黃南":{"id":10973,"name":"黃南","prov":"青海","latt":35.519549,"logi":102.015248}, 
    "海北":{"id":10970,"name":"海北","prov":"青海","latt":36.954413,"logi":100.900998} 
}""" 

o = json.loads(j) 
print(json.dumps(o,indent=1))