2012-12-10 63 views
4

我正在使用urllib2獲取Excel文件並保存到下面的響應中。我希望能夠使用xlrd或類似的過程來處理這個excel文件。我在下面列出了一些信息,請告訴我是否可以提供更多信息。我怎樣才能將響應對象轉換成我可以玩的對象?讀取使用urllib2檢索到的Excel對象

response = <addinfourl at 199999998 whose fp = <socket._fileobject object at 0x100001010>> 

response.read() prints: '\xd0\xcf\x11\xe0...' 

Headers: 
Content-Type: application/vnd.ms-excel 
Transfer-Encoding: chunked 

回答

5

使用xlrd,並根據its API documentation,它看起來像你可以使用類似這樣:

book = xlrd.open_workbook(file_contents=response.read()) 

它似乎並不支持讀取file對象(其中,海事組織,會是理想的),只採取filename本身或以上file_contents方法。

如果file_contents不存在或不起作用,則必須使用tempfile將響應寫入臨時文件並讀取該文件。

+0

謝謝@zigg。當我第一次嘗試這個時,我有'xlrd.open_workbook(file_contents = response)'但沒有'.read()'這是導致錯誤,'AttributeError:addinfourl實例沒有屬性'__len __' –