首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyntaxError使用gdata-python-client访问Google Book Search Data API

SyntaxError使用gdata-python-client访问Google Book Search Data API
EN

Stack Overflow用户
提问于 2010-05-28 08:38:19
回答 3查看 2.2K关注 0票数 2
代码语言:javascript
复制
>>> 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

这是一个最小的示例--具体地说,包中包含的图书服务单元测试也会失败,并出现完全相同的错误。我已经查看了wiki and open issue tickets on Google Code,但没有用(在我看来,这更可能是我的一个愚蠢的错误,而不是库的问题)。我不确定如何解释错误消息。如果重要的话,我使用的是python 2.6.5和gdata的最新版本,即2.0.10。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-10 19:31:22

我发现我需要在gdata客户端中禁用SSL才能使其正常工作:

代码语言:javascript
复制
...
gd_client.ProgrammaticLogin()
gd_client.ssl = False
...
票数 3
EN

Stack Overflow用户

发布于 2010-06-15 05:41:26

Sje397的答案是正确的;在上面的示例中,如果您这样做:

代码语言:javascript
复制
service.ssl = False

在运行search_by_keyword方法之前,会正确返回结果。如果您没有将SSL设置为false,那么由于客户端没有正确地进行身份验证,请求将被重定向到谷歌主页(因此Alex Martelli在您转到http://www.google.com时看到的是HTML...绝对不是格式良好的XML)。

票数 2
EN

Stack Overflow用户

发布于 2010-05-28 10:33:43

稍微修改一下xml字符串,我注意到它的开头有一个小写的 <!doctype html> (应该是大写的DOCTYPE),这当然会导致XML解析失败--这肯定是图书服务中的一个bug,需要报告。作为临时解决方法,您可以破解atom/__init__.xml,将127行更改为...:

代码语言:javascript
复制
tree = ElementTree.fromstring(xml_string.replace('doctype','DOCTYPE'))

但是,虽然这克服了XML中的这个bug,但它在第496列中揭示了另一个bug(我想这是在一些javascript代码的中间)。我猜在这一点上,图书服务中有一些东西被打破了……:-(

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2925985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档