2014-10-11 40 views
0

我使用下面的代碼提交XHR請求給一個網站,並返回嵌套列表我想要的數據包含在:爲什麼我得到這個JSONDecodeError?

import requests 

url = 'http://www.whoscored.com/stagestatfeed/9155/stageteams/' 
url = str(''.join(url[0:3])) 
params = { 
      'against': '0',    
      'field': '0', 
      'teamId': '-1', 
      'type': '8' 
      } 

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36', 
      'X-Requested-With': 'XMLHttpRequest', 
      'Host': 'www.whoscored.com', 
      'Referer': 'http://www.whoscored.com/'} 

responser = requests.get(url, params=params, headers=headers) 

responser = responser.json() 
print responser 

不過,我收到以下錯誤消息:

simplejson.scanner.JSONDecodeError: Expecting value: line 1 column 7 (char 6) 

被返回的項目似乎是JSON,所以我不確定爲什麼我收到此錯誤。

任何人都可以協助嗎?

感謝

回答

2

使用JSONLint,以驗證它確實是JSON,因爲它可能不是。 JSONlint會告訴你錯誤的具體位置。我申請了線下這一「分析」(不要再讀取任何如果你想找到自己在這裏的解決方案):


返回JSON是無效的,因爲它使用單引號表示字符串。 JSON只允許雙引號:

JSON string

更換所有'"作品:

import requests 
import json 

url = 'http://www.whoscored.com/stagestatfeed/9155/stageteams/' 
#url = str(''.join(url[0:3])) 
params = { 
      'against': '0',    
      'field': '0', 
      'teamId': '-1', 
      'type': '8' 
      } 

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36', 
      'X-Requested-With': 'XMLHttpRequest', 
      'Host': 'www.whoscored.com', 
      'Referer': 'http://www.whoscored.com/'} 

responser = requests.get(url, params=params, headers=headers) 

print json.loads(responser.text.replace("'", '"')) 
+0

好了,這真是棒極了。感謝您的建議。 – gdogg371 2014-10-11 19:28:46