मैं पाइथन का उपयोग कर स्टैक ओवरफ़्लो एपीआई के साथ खेल रहा हूं। मैं एपीआई देता है कि gzipped प्रतिक्रियाओं को डीकोड करने की कोशिश कर रहा हूँ।मैं "फ़ाइल जैसी वस्तु" से GzipFile उदाहरण कैसे बना सकता हूं जो urllib.urlopen() देता है?
import urllib, gzip
url = urllib.urlopen('http://api.stackoverflow.com/1.0/badges/name')
gzip.GzipFile(fileobj=url).read()
the urllib2 documentation के अनुसार, urlopen
"फ़ाइल की तरह ऑब्जेक्ट"।
AttributeError: addinfourl instance has no attribute 'tell'
जहां तक मेरा बता सकते हैं, इस वस्तु urlopen
द्वारा लौटाए से आ रही है:
हालांकि, जब मैं GzipFile वस्तु मैं इसे का उपयोग कर बनाए गए पृष्ठ पर read()
चलाने के लिए, मैं इस त्रुटि मिलती है।
यह जब मैं यह कर या तो चाहते हैं, के रूप में मैं कोई त्रुटि मिलती है करने के लिए प्रकट नहीं होता है:
url.read()
url.seek(0)
वास्तव में इस वस्तु क्या है, और मैं इसे कैसे से एक कार्य GzipFile
उदाहरण बना सकता हूँ?
'सामग्री-एन्कोडिंग: gzip' को http लाइब्रेरी द्वारा संभाला जाना चाहिए, लेकिन दुर्भाग्यवश यह नहीं है। दिलचस्पी के लिए यह पाइथन के बग डेटाबेस में [मुद्दा 9500] (http://bugs.python.org/issue9500) है। –
@ मैग्नस: चीयर्स, यह जानना अच्छा है कि यह कम से कम बग ट्रैकर में है। –