Frage

>>> import gdata.books.service
>>> service = gdata.books.service.BookService()
>>> results = service.search_by_keyword(isbn='0434003484')
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
  results = service.search_by_keyword(isbn='0434003484')
... snip ...
File "C:\Python26\lib\site-packages\atom\__init__.py", line 127, in CreateClassFromXMLString
  tree = ElementTree.fromstring(xml_string)
File "<string>", line 85, in XML
SyntaxError: syntax error: line 1, column 0

Dies ist ein minimales Beispiel - insbesondere die Buch Service Unit-Tests im Paket enthalten auch mit der exakt gleichen Fehler fehlschlagen. Ich habe bei der sah Wiki und ungelöste Problem Karten bei Google Code Gebrauch macht nicht (und das scheint mir eher geneigt, ein dummer Fehler auf meinem Ende zu sein, anstatt ein Problem mit der Bibliothek). Ich bin mir nicht sicher, wie die Fehlermeldung zu interpretieren. Wenn es darauf ankommt, bin ich mit Python 2.6.5 und die neueste Version von gdata, nämlich 2.0.10.

War es hilfreich?

Lösung

Ich fand ich zu deaktivieren dem SSL benötigen im gdata Client für sie zu arbeiten:

...
gd_client.ProgrammaticLogin()
gd_client.ssl = False
...

Andere Tipps

sje397 Antwort die richtige ist; im obigen Beispiel, wenn Sie das tun:

service.ssl = False

vor der search_by_keyword Methode ausgeführt wird, wird das Ergebnis richtig zurückgegeben. Wenn Sie nicht Set SSL tun, falsch zu sein, dann, weil der Client nicht korrekt authentifiziert hat, wird die Anforderung an der Haupt Google-Startseite umgeleitet (also was Alex Martelli sehen Fehler war in war die HTML erhalten Sie, wenn Sie gehen auf http://www.google.com ... definitiv nicht wohlgeformte XML).

Hacking um ein bisschen die XML-Zeichenfolge, um zu sehen, merke ich es eine hat Klein <!doctype html> am Anfang (sollte Groß DOCTYPE sein), die natürlich macht die XML-Parsing-fail - auf jeden Fall einen Fehler in dem Buch-Service, die berichtet werden muss. Als vorübergehende Lösung, um Sie könnten die atom/__init__.xml zu ändern Linie 127 hacken ...:

tree = ElementTree.fromstring(xml_string.replace('doctype','DOCTYPE'))

aber während die Vergangenheit dieser Fehler in der XML wird es eine andere in Spalte zeigt 496 (ich glaube, das ist in der Mitte einig Javascript-Code). Ich denke, es ist etwas, an dieser Stelle in Bookservice allgemein Borken ...: - (

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top