由于某些原因,我从以下url获取JSON数据的这部分只会有效。有时它会返回404错误,并抱怨缺少标题属性。如果我将其粘贴到Web浏览器上,它将100%的工作时间。所以我确定链接没有被破坏或者什么。
我在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 :(得分:6)
如记录here所示,您需要明确接受JSON。只需在第一行之后添加第二行。
req = urllib2.Request(url, None, header)
req.add_header('Accept', 'application/json')