首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AlchemyAPI Python SDK出错

AlchemyAPI Python SDK出错
EN

Stack Overflow用户
提问于 2011-10-15 23:26:22
回答 1查看 455关注 0票数 0

我正在尝试使用AlchemyAPI Python0.7SDK。然而,当我在其中运行一个方法时,例如URLGetText(url);

我得到了这个错误:

代码语言:javascript
复制
    nodes = etree.fromstring(result).xpath(xpathQuery)
  File "lxml.etree.pyx", line 2743, in lxml.etree.fromstring (src/lxml/lxml.etree.c:52665)
  File "parser.pxi", line 1573, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:79932)
  File "parser.pxi", line 1452, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:78774)
  File "parser.pxi", line 960, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:75389)
  File "parser.pxi", line 564, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:71739)
  File "parser.pxi", line 645, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:72614)
  File "parser.pxi", line 585, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71955)
lxml.etree.XMLSyntaxError: AttValue: " or ' expected, line 19, column 11

这来自以下代码区域:

代码语言:javascript
复制
  def GetRequest(self, apiCall, apiPrefix, paramObject):
    endpoint = 'http://' + self._hostPrefix + '.alchemyapi.com/calls/' + apiPrefix + '/' + apiCall
    endpoint += '?apikey=' + self._apiKey + paramObject.getParameterString()
    handle = urllib.urlopen(endpoint)
    result = handle.read()
    handle.close()
    xpathQuery = '/results/status'
    nodes = etree.fromstring(result).xpath(xpathQuery)
    if nodes[0].text != "OK":
      raise Exception, 'Error making API call.'
    return result

有谁知道哪里出了问题吗?

谢谢

丹尼尔·克肖

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-16 00:22:04

我查看了Python urllib文档,发现了这个页面:

http://docs.python.org/library/urllib.html#high-level-interface

其中包含有关urllib.urlopen()返回的filehandle对象的以下警告

需要注意的是:如果size参数被省略或为负值,read()方法可能直到数据流结束时才会读取;一般情况下,没有好的方法来确定套接字中的整个流是否已被读取。

我认为在使用Python解析文件之前,您可能应该确保以etree.fromstring()字符串的形式获取文件的全部内容。类似于:

代码语言:javascript
复制
result = ''
while (1):
    next = handle.read()
    if not next: 
        break
    result += next
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7778733

复制
相关文章

相似问题

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