2012-03-27 5 views
3

私は次のURLからJSONデータを取得するこの部分は時々動作します。そして時には404エラーを返し、ヘッダー属性が欠落していると文句を言うでしょう。私はそれをWebブラウザに貼り付けると100%の時間がかかるでしょう。だから私はリンクが壊れていないか何かがないと確信しています。urllib2 urlopen非常にランダムに動作します

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

は、その理由は何だとそれを固定することができます。

は、私はPythonで次のエラーを取得しますか? Btwプライベートなので、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

+0

@それはそれを記述するためのより良い言葉です。申し訳ありませんが英語は私の母国語ではありません; – starcorn

答えて

6

hereと書かれているように、明示的にJSONを受け入れる必要があります。最初の行の後に2行目を追加するだけです。

req = urllib2.Request(url, None, header) 
req.add_header('Accept', 'application/json') 
関連する問題