2011-09-26 91 views
0

我想使用json庫解析JSON。我執行的下面的代碼塊,而我得到的錯誤:嘗試使用json庫解析JSON時出錯

Traceback (most recent call last): 
    File "test1.py", line 12, in <module> 
    parsedResponse = json.loads(data) 
    File "/usr/local/lib/python2.7/json/__init__.py", line 326, in loads 
    return _default_decoder.decode(s) 
    File "/usr/local/lib/python2.7/json/decoder.py", line 360, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "/usr/local/lib/python2.7/json/decoder.py", line 378, in raw_decode 
    raise ValueError("No JSON object could be decoded") 
ValueError: No JSON object could be decoded 

的代碼是:

import urllib, urllib2 
from django.utils import simplejson 
import json 

opener = urllib2.build_opener() 
requestURL = "http://api.shopstyle.com/action/apiSearch?pid=2254&fts=red+dress&min=0&count=10" 
data = opener.open(requestURL).read().decode('utf8') 
print data #this works 
parsedResponse = json.loads(data) 

我試圖消除的read()解碼(「utf-8」)和傳球到json.load()中,但這也不起作用。我會很感激任何幫助:)

謝謝。

+1

什麼是'打印data'的輸出?這聽起來像你收到的是無效的,或不正確的形成。 –

+0

我可以以某種方式在這篇文章中附加輸出嗎?這是一個非常長的輸出:) – iman453

+1

調試101:'print repr(data)'(** do not **只是'打印數據'),然後複製/粘貼到您的問題的編輯。 –

回答

4

當您打印輸出時,是否有這樣的機會?

<SearchResult> 
<QueryDetails> 
<Category>womens-clothes</Category> 
<CategoryName>Clothing</CategoryName> 
<ShowSizeFilter>false</ShowSizeFilter> 
<ShowColorFilter>true</ShowColorFilter> 
... 

這是XML而不是JSON。

+0

呵呵。文檔說它會返回JSON,並且我是網絡編程的新手,所以我有點認爲它是JSON。感謝:) – iman453

+3

一些快速谷歌搜索似乎表明,只要將'&format = json2'追加到該URL應該給你JSON,如果這是你想要的格式。 [This](http://api.shopstyle.com/action/apiSearch?pid=2254&fts=red+dress&min=0&count=10&format=json2)是您的代碼段中的網址,但採用JSON格式。 –

+0

謝謝John!我感謝你的幫助(也感到有點愚蠢的張貼這...應該研究更多嘿) – iman453

1

是數據null? 數據不正確JSON?

從你的URL看來它的輸出XML不是JSON壽。

,如果你可以張貼的data輸出,這將有助於