2010-05-12 160 views
68

我想發送一個GET請求到一個我知道使用python以JSON形式返回數據的URL。如何用python請求和處理JSON?

我想知道如何發送這個請求到http://someurl/path/to/json,以及如何解析它 - 最好是一個python字典。

+1

我可以請你將接受的答案轉換爲使用請求的答案嗎? – webjunkie 2016-08-11 09:16:03

+0

當然,這就是我今天要做的:) – sa125 2016-08-12 07:47:50

回答

95

對於任何請求URL的用戶,您可能想查看requests。對於JSON尤其如此:

>>> import requests 
>>> r = requests.get('https://github.com/timeline.json') 
>>> r.json() 
[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/... 
+1

使用'$ python GetJson.py' [不給出任何迴應](https://github.com/iPrayag/pydown/blob/master/GetJson.py)運行它,但在一個一個地運行時也是如此python的CLI工作fine.any錯誤,我把它放在一個'.py'?(ma noob in python) – prayagupd 2014-01-01 05:53:07

+0

我遇到的問題是,DjangoRestFramework序列化程序不接受這爲有效的JSON,由於'你在密鑰前添加前綴。 – 2014-09-26 09:54:59

+2

@PrayagUpd舊的,你可能已經發現了,但是對於其他人想知道的:在'.py'文件中需要'print(r.json())'來查看響應。 – 2015-08-28 07:01:27

68

Python的標準庫有jsonurllib2模塊。

import json 
import urllib2 

data = json.load(urllib2.urlopen('http://someurl/path/to/json')) 
+14

這是一個老問題,但我想加入webjunkie,並指出在2012年圖書館Requests:HTTP for Humans是一個潛在的可取的答案。 http://docs.python-requests.org/en/latest/ – 2012-10-11 12:44:02

+3

你一定要使用請求。 – hughdbrown 2013-06-07 13:46:27