2012-03-27 96 views
3

由於某些原因,我從以下url中獲取JSON數據的部分只會有時起作用。有時它會返回404錯誤,並抱怨缺少標題屬性。如果我將它粘貼到網絡瀏覽器上,它將100%的工作。所以我確定鏈接沒有被破壞或者什麼。urllib2 urlopen非常隨機地工作

我碰到下面的錯誤在Python:

AttributeError: 'HTTPError' object has no attribute 'header'

什麼是這種情況的原因,可以說,它是固定的嗎? 順便說一句,我刪除了API密鑰,因爲它是私人的。

try: 
    url = "http://api.themoviedb.org/3/search/person?api_key=API-KEY&query=natalie+portman" 
    header = { 'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16' } 
    req = urllib2.Request(url, None, header) 
    f = urllib2.urlopen(req) 
except urllib2.HTTPError, e: 
    print e.code 
    print e.msg 
    print e.header 
    print e.fp.read() 
+0

@starcom我認爲你的意思是「偶爾」而不是「隨機」。我懷疑是否有一個RNG確定你的代碼是否失敗,即使它感覺如此。 – Hooked 2012-03-27 14:51:53

+0

@掛鉤是的,這是一個更好的詞來形容它。對不起英文不是我的第一語言;( – starcorn 2012-03-27 16:33:20

回答

6

正如記載here,你需要明確接受JSON。只需在第一行之後添加第二行。

req = urllib2.Request(url, None, header) 
req.add_header('Accept', 'application/json')