阅读基于网络的JSON

时间:2017-12-19 00:09:01

标签: python json urllib

我正在编写需要联系此在线JSON文件的代码,查询数据并返回搜索结果。

我尝试了以下代码:

    adsb_data = urllib2.urlopen('http://website.com')    

这将抛出 urllib2.HTTPError:HTTP错误403:禁止

所以显然我不是最好的方式。 打开JSON页面,抓取它并显示结果的最佳方法是什么?我觉得有更优雅和pythonic的方式来做到这一点。

2 个答案:

答案 0 :(得分:2)

看起来该特定服务器阻止了Python的用户代理。这应该适合你:

url = "http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json"
dummy_ua = "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11" 
request = urllib2.Request(url, headers={'User-Agent' : dummy_ua}) 
urllib2.urlopen(request).read()

答案 1 :(得分:0)

所有好的答案!谢谢大家的意见。

我使用requests代替urllib2修复了此问题。 以下是我的请求:

 adsb_data = http_request('http://public-api.adsbexchange.com/VirtualRadar/AircraftList.json', 'GET')

从那里,我创建了一个列表并解析出我想要的数据。