3 Stimmen

Python: Was ist der richtige Weg, um gzipped json zu behandeln?

Ich habe gefunden dieser Ausschnitt das die Aufgabe zu erfüllen scheint, aber ich kann nicht verstehen, warum es StringIO verwendet. Ist nicht f bereits ein dateiähnliches Objekt? Warum muss man sie lesen, sie dann wieder wie eine Datei aussehen lassen, nur um sie dann wieder zu lesen? Ich habe es getestet (nun, eine leicht modifizierte Version davon), und es funktioniert nicht ohne StringIO.

1voto

log0 Punkte 10190

Es scheint ein Fehler in der Python-Standardbibliothek zu sein, der in Python 3.2 behoben ist.
siehe http://www.enricozini.org/2011/cazzeggio/python-gzip/

urllib y urllib2 Dateiobjekte bieten keine Methode tell() wie von gzip gefordert.

1voto

John Machin Punkte 78125

Es ist möglich, dass der gunzip-Code ein dateiähnliches Objekt benötigt, das eine seek Methode, die eine HTTP-Bibliothek höchstwahrscheinlich nicht bieten kann. Was bedeutet "Funktioniert nicht"? Fehlermeldung?

Wenn Sie wirklich Wert auf Effizienz legen, ändern Sie den Code leicht ab, so dass er cStringIO und nicht StringIO verwendet.

0voto

pvoosten Punkte 3087

So wie ich den entsprechenden Teil des Codes lese, heißt es:

  • Öffnen einer Url
  • Laden Sie es vollständig in den Speicher herunter (mit der read Methode)
  • Speichern Sie den Inhalt in einem StringIO-Objekt, so dass er als dateiähnliches Objekt verfügbar ist.
  • Machen Sie die gzip und json Sachen damit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X