Как я могу создать экземпляр GzipFile из «файлового объекта», который возвращает urllib.urlopen ()?

Я играю с API переполнения стека, используя Python. Я пытаюсь расшифровать сжатый gzip ответы, которые дает API.

import urllib, gzip

url = urllib.urlopen('http://api.stackoverflow.com/1.0/badges/name')
gzip.GzipFile(fileobj=url).read()

Согласно документации urllib2 , urlopen «возвращает объект, подобный файлу».

Однако, когда я запускаю read ( ) в объекте GzipFile, который я создал с его помощью, я получаю следующую ошибку:

AttributeError: addinfourl instance has no attribute 'tell'

Насколько я могу судить, это исходит от объекта, возвращенного urlopen .

Похоже, что у него тоже нет поиска, так как я получаю сообщение об ошибке, когда делаю это:

url.read()
url.seek(0)

Что это за объект и как создать из него работающий экземпляр GzipFile ?

15
задан Paul D. Waite 17 November 2010 в 14:30
поделиться