2014-10-20 71 views
0

我對Python相當陌生,我試圖對返回JSON的URL執行HTTP請求。我的代碼是:Python 3.4.1 - 讀取HTTP請求數據

url = "http://myurl.com/" 
req = urllib.request.Request(url) 
response = urllib.request.urlopen(req) 
data = response.read() 

我收到一個錯誤消息:「'bytes'對象沒有'read'屬性。我四處搜尋,但還沒有找到解決辦法。有什麼建議麼?

+2

這不能成爲你真正的代碼。在你真實的代碼中,嘗試'print(type(response))'和/或'print(repr(response))'來看看你代替了這個代碼返回的'http.client.HTTPResponse'。然後向我們展示您的真實代碼,我們可以告訴您爲什麼你有這個。 – abarnert 2014-10-20 20:59:02

+0

引起這個問題的最明顯的錯誤是'response = urllib.request.urlopen(req).read()',所以你對'read()'的結果調用'read()',但是無數的其他方式可以做到這一點,我們無法猜測你沒有[MCVE](http://stackoverflow.com/help/mcve)做了哪一個。 – abarnert 2014-10-20 20:59:54

+0

http://stackoverflow.com/questions/6862770/python-3-let-json-object-accept-bytes-or-let-urlopen-output-strings – 2014-10-20 21:23:02

回答

0

您可能會發現requests庫更容易使用:

import requests 
data = requests.get('http://example.com').text 

,或者,如果你需要的原料,未解碼的字節,

import requests 
data = requests.get('http://example.com').content