1

我正在尝试从 wolframalpha 解析 xml 文档。

我现在使用的编码是:

from xml.etree import ElementTree as ET
import urllib
import urllib2

def ask(s=None):
    q = urllib.urlencode(dict(input=s, appid='apikey'))
    url = 'http://api.wolframalpha.com/v2/query?' + q
    r = urllib2.urlopen(url)

    p = ET.parse(r)

ask('what is the distance from montreal to New York?')

我收到内容中包含非法字符的错误。虽然它与普通 python 完美结合。

这是 xml: http: //pastebin.com/ektp23bN

使用 Ironpython 2.7.4。.Net 4.0 32位

有小费吗?

4

1 回答 1

0

我能够重现您所描述的行为。与 CPython 2.7.4/2.7.6 相比,IronPython 2.7.4 附带的实现似乎有所不同,ElementTreexmllib可以/应该为此提交错误

您可以通过显式解码 utf-8 来解决此问题:

r = urllib2.urlopen(url)
data = r.read().decode('utf-8')
p = ET.fromstring(data)
于 2014-02-05T23:08:11.430 回答